预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共24页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

会计学为什么要研究和学习设计模式为什么要研究和学习设计模式关于“四人组”为什么要研究和学习设计模式模式的四大要素设计模式的分类创建型模式结构型模式行为型模式设计原则与设计模式面向对象的设计原则有以下六条: 一、开-闭原则。 二、里氏替换原则。 三、依赖倒转原则。 四、接口隔离原则。 五、合成/聚合复用原则。 六、迪米特法则。概念:面向扩展开放,面向修改关闭。 该原则的思想是,可以通过扩展来满足变化,而不需要修改代码,或者说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。概念:凡有父类出现的地方,都可以用其子类去替换,而程序运行不受影响。 其实里氏替代原则的意思就是:同一个继承体系中的对象应该有共同的行为特征。里氏代换原则关注的是怎样良好地使用继承,也就是说不要滥用继承,它是继承复用的基石。概念:把抽象依赖具体,倒转成具体依赖抽象。 把底层依赖表现层,倒转成表现层依赖底层。 把战略依赖战术,倒转成战术依赖战略。 在实际开发中是指:针对接口编程,而不要针对实现编程。 针对接口编程的意思是,应当使用接口和抽象类进行变量的类型声 明、参量的类型声明,方法的返还类型声明,以及数据类型的转换 等,而尽量不使用具体类去做这些工作。零耦合关系:两个类没有耦合关系 具体耦合关系:发生在两个具体的(可实例化的)类之间,经由一个类对另一个具体类的直接引用造成。 抽象耦合关系:发生在一个具体类和一个抽象类(或接口)之间,使两个必须发生关系的类之间存有最大的灵活性。通过使用抽象类或接口来实现。概念:尽量设计使用功能单一的接口,而不是把多种功能放到一 个接口中。不要强迫客户依赖于它们不用的方法。 一个类对另外一个类的依赖性应当是建立在最小的接口上的。 如果客户端只需要某一些方法的话,那么就应当向客户端提供这 些需要的方法,而不要提供不需要的方法。提供接口意味着向客 户端作出承诺,过多的承诺会给系统的维护造成不必要的负担。 人们所说的接口往往是指两种不同的东西:一种是指一个类 所具有的所有方法特征的集合;一种是指Java语言中有严格定义 的Interface结构,比如java.lang.Runnable就是一个Java接口。 对于这两种不同的说法,本原则的表达方式以及含义都 有所不同。第一种说法是一个在逻辑上才存在的概念。接口 的划分直接带来类的划分。 一个接口相当于剧本中的一个角色,而此角色在舞台上 由哪一个演员来演则相当于接口的实现。因此,一个接口应 当简单地代表一个角色,而不是多个角色。如果系统涉及到 多个角色的话,那么每个角色都应当由一个特定的接口代表。 这种角色划分的原则叫做角色隔离原则。如果是将接口理解为狭义的Java接口,那么,接口隔离原则讲的就是为同一个角色提供宽、窄不同的接口,以应对不同的客户端。(如:“看人下菜碟”) 这种接口隔离原则又叫定制服务原则。概念:在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用这些对象的目的。在实际开发中应优先考虑使用合成/聚合技术去实现复用,而非使用继承实现复用。 如果两个类是“Has-a”关系应使用合成、聚合,如果是“Is-a”关 系可使用继承。“Is-A”是严格的分类学意义上定义,意思是一个 类是另一个类的“一种”。而“Has-A”则不同,它表示某一个角色 具有某一项责任。概念:一个软件实体应当尽可能少的与其他实体发生相互作用。 这样,当一个模块修改时,就会尽量少的影响其他的模块。扩展会相对容易。 这是对软件实体之间通信的限制。它要求限制软件实体之间通信的宽度和深度。迪米特法则的其他表述: 1)只与你直接的朋友们通信。 2)不要跟“陌生人”说话。 3)每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。结语评