java设计中的模式应用

java设计中的模式应用

ID:40297050

大小:70.00 KB

页数:10页

时间:2019-07-30

java设计中的模式应用_第1页
java设计中的模式应用_第2页
java设计中的模式应用_第3页
java设计中的模式应用_第4页
java设计中的模式应用_第5页
资源描述:

《java设计中的模式应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、GRASP(GeneralResponsibilityAssignmentSoftwarePatterns)创建者(Creator)问题:谁创建了A?解决方案:如果以下条件之一为真时(越多越好),将创建类A实例的职责分配给B:lB“包含”或组成聚合了AlB记录AlB紧密地使用AlB具有A的初始化数据举例:比如在富客户端应用开发中,主程序创建一个主窗口对象,然后有主窗口对象来负责创建它内部的各种菜单、按钮等对象(而不是由主程序来创建这些菜单或按钮对象之后,再把它设置到主窗口中去)还可以拿Person对象中Address列表的创建来举例:public

2、classPerson{privateintid;privateStringname;privateListaddresses;publicvoidaddAddress(Stringstreet,Stringcity,Stringprovince,StringpostCode){if(addresses==null){addresses=newArrayList();}Addressa=newAddress();a.setxxxx(xxxx);addresses.add(a);}}publicclassAddress{privateStrings

3、treet;privateStringcity;privateStringprovince;privateStringpostCode;};Personp=newPerson();p.setxxxxp.addAddress(xx,xx,xx...);Addressa1=newAddress();a1.setxxxxAddressa2=newAddress();a2.setxxxxListlist=newArrayList();list.add(a1);list.add(a2);p.setAddresses(list);信息专家(Informati

4、onExpert)问题:给对象分配职责的基本原则是什么?解决方案:把职责分配给具有完成该职责所需信息的那个类。(描述一种直觉!)举例:publicclassClasses{privateintid;privateSetstudents;//描述一种直觉publicvoidaddStudent(Studentstudent){if(students==null){students=newHashSet();}students.add(student);}//将职责放在拥有这个职责所需信息的那个类中publicbooleanhasStudent(St

5、udentstudent){for(Iteratoriterator=students.iterator();iterator.hasNext();){Students=(Student)iterator.next();if(s.equals(student)){returntrue;}}returnfalse;}publicclassStudent{privateintid;privateStringname;//判断两个学生对象是否相同的职责,交给Student来完成,因为它拥有这个//职责所需要的所有信息publicbooleanequal

6、s(Studentstudent){if(name.equals(student.getName())){returntrue;}returnfalse;}publicclassTreeNode{privateintid;privateintlevel;privateStringnodeName;privateTreeNodeparent;privateListchildren;publicvoidprint(){for(inti=0;i

7、t.println(nodeName);for(Iteratoriterator=children.iterator();iterator.hasNext();){TreeNodenode=iterator.next();node.print();}}低耦合(LowCoupling)所谓耦合,即两个对象之间联系的紧密程度问题:如何减少因变化产生的影响?解决方案:分配职责以使耦合保持在较低的水平。低耦合是构建软件最重要的目标之一。要注意:我们讲低耦合,是降低与不稳定系统之间的耦合度,而不是那些稳定的系统,比如说我们在JAVA编程

8、过程中,没有必要想专门的办法来降低与JDK核心类库之间的耦合度,因为JDK核心类库非常稳定,很少会发生变化。高内聚(HighCohesi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。