Java设计模式学习心得

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java设计模式之心得

UML

1.案例图:系统角色和使用案例和它们之间的关系

2.类图:

类图中的关系

1.一般化关系:继承,接口

2.关联关系:类与类之间的联系Driver中的Car

3.聚合关系:整体与个体之间的关系

4.合成关系:强关联,整体包含部分,整体代表部分的生命周期,不能共享

5.依赖关系:类与类之间的连接,如Person包含Car和House

3.时序图:

每个步骤的流程图

4.状态图:一系列对象的内部状态及状态变化和转移

5.合作图:相互关系图

6.构建图:部署的软件构件之间的关系

7.活动图:

8.部署图:

面向对象的设计原则:

1.设计目标:可扩展性、可维护性、可插入性、可复用性

2.设计原则:开闭原则、里氏替换原则、依赖倒转原则、接口隔离原则、组合\聚合复用原则、迪米特法则

开闭原则:

OCP作为OO的高层原则,主张使用“抽象(Abstraction)”和“多态(Polymorphism)”将设计中的静态结构改为动态结构,维持设计的封闭性。

一句话:“Closed for Modification;Open for Extension”——“对变更关闭;对扩展开放”。开闭原则其实没什么好讲的,我将其归结为一个高层次的设计总则。OCP的动机很简单:软件是变化的。不论是优质的设计还是低劣的设计都无法回避这一问题。OCP说明了软件设计应该尽可能地使架构稳定而又容易满足不同的需求。

重要的步骤:

1.抽象化

2.对可变性的封装原则

里氏替换原则:

1.分析对象时必须明确是Is-a还是Has-a的关系,任何基类适应的地方,子类一定适用依赖倒转原则:

要依赖于抽象,不要依赖于具体。简单的说,依赖倒置原则要求客户端依赖于抽象耦合。原则表述:抽象不应当依赖于细节;细节应当依赖于抽象;要针对接口编程,不针对实现编程。

接口隔离原则:

使用多个专门的接口比使用单一的总接口要好。广义的接口:一个接口相当于剧本中的一种角色,而此角色在一个舞台上由哪一个演员来演则相当于接口的实现。因此一个接口应当简单的代表一个角色,而不是一个角色。,如果系统设计多个角色的话,则应当每一个角色都由一个特定的接口代表。狭义的接口(Interface):接口隔离原则讲的就是同一个角色提供宽、窄不同的接口,以对付不同的客户端。

组合\聚合复用原则:

要尽量使用组合/聚合,而不是使用继承来达到目的

原因:

继承复用的缺点:静态复用

什么使用使用继承:a.满足is-a的关系,而不是has-a的关系

b.满足lsp原则

优点:a.简洁 b.父类修改某个方法,子类能获得

迪米特法则:

一个对象或模块应该和其它对象和模块尽量少的通信(高内聚),涉及的模式有:门面模式,调停者模式,前端控制器模式,业务代表模式,dao模式

相关文档
最新文档