设计模式学习计划

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lw_zj_ywn/article/details/82746446

设计模式的学习

设计模式的六大原则

1.单一职责原则(Single Responsibility Principle)

**注意** 单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计得是否优良,
但是“职责”和“变化原因”都是不可度量的,因项目而异,因环境而异。

一个方法承担一个职责:如果要修改用户名称,就调用changeUserName方法;要修改家庭地址,
就调用changeHomeAddress方法;要修改单位电话,就调用changeOfficeTel方法。每个方法的
职责非常清晰明确,不仅开发简单,而且日后的维护也非常容易,大家可以逐渐养成这样的
习惯。

2.里氏替换原则(Liskov Substitution Principle)

定义:
第一种定义,也是最正宗的定义:If for each object o1 of type S there is an object o2 of
type T such that for all programs P defined in terms of T,the behavior of P is unchanged when o1 is
substituted for o2 then S is a subtype of T.(如果对每一个类型为S的对象o1,都有类型为T的对
象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变
化,那么类型S是类型T的子类型。)

● 第二种定义:Functions that use pointers or references to base classes must be able to use
objects of derived classes without knowing it.(所有引用基类的地方必须能透明地使用其子类的
对象。)

3.依赖倒置原则(Dependence Inversion Principle)

依赖倒置原则的原始定义是:
High level modules should not depend upon low level modules.Both should depend upon
abstractions.Abstractions should not depend upon details.Details should depend upon abstractions.
翻译过来,包含三层含义:
● 高层模块不应该依赖低层模块,两者都应该依赖其抽象;
● 抽象不应该依赖细节;
● 细节应该依赖抽象。

依赖倒置原则在Java语言中的表现就是:
● 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过
接口或抽象类产生的;
● 接口或抽象类不依赖于实现类;
● 实现类依赖接口或抽象类。

依赖的三种写法
1.构造函数传递依赖对象
2.Setter方法传递依赖对象
3.接口声明依赖对象

4.接口隔离原则(Interface Segregation Principle)

根据接口隔离原则拆分接口时,首先必须满足单一职责原则

5.迪米特法则(Law of Demeter)

也称为最少知识原则(Least Knowledge Principle,LKP),虽然名字不同,但描述的是同一个规则:一个对象应该对其他对象有最少的了解。

6.开闭原则(Open Closed Principle)
开闭原则的定义:
Software entities like classes,modules and functions should be open for extension but closed for modifications.(一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。)

猜你喜欢

转载自blog.csdn.net/lw_zj_ywn/article/details/82746446