Skip to content

Commit 5bc75f2

Browse files
authored
Update README.md
1 parent fc47885 commit 5bc75f2

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

README.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
设计模式
33

44
创建模式
5+
56
1、设计模式之Factory (简单工厂)
67
工厂模式:提供创建对象的接口
78
工厂模式的设计好处:
@@ -13,8 +14,7 @@
1314
2、设计模式之abstractFactory(抽象工厂)
1415
抽象工厂类:提供创建对象实例的抽象类
1516
抽象工厂设计优点:
16-
1)、将创建对象实例的方法提取出在抽象类中实现,其子类更专注于何时创建实例,不用注重如何实例化。
17-
(将共同的部分封装在抽象类中,提供各种不同的子类实现)
17+
1)、将创建对象实例的方法提取出在抽象类中实现,其子类更专注于何时创建实例,不用注重如何实例化。(将共同的部分封装在抽象类中,提供各种不同的子类实现)
1818
2)、实现了程序间的松耦合
1919
3)、易于维护与扩展
2020

@@ -107,6 +107,7 @@ Flyweight模式是一个提高程序效率和性能的模式,会大大加快程
107107

108108

109109
行为模式
110+
110111
1、设计模式之Template(模板方法)
111112
定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中。其实java的抽象类本来就是Template模式
112113

@@ -127,6 +128,7 @@ Memento模式在Jsp+Javabean中的应用
127128

128129

129130
3、设计模式之Observer(观察者)
131+
130132
Observer(观察者)模式是比较常用的一个模式,尤其在界面设计中应用广泛
131133
如何使用:
132134
Java的API还为为我们提供现成的Observer接口Java.util.Observer.我们只要直接使用它就可以.
@@ -147,6 +149,7 @@ Chain of Responsibility(CoR) 是用一系列类(classes)试图处理一个请求
147149
5、设计模式之Command(命令)
148150

149151
Command定义
152+
150153
不少Command模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执行一些动作
151154
将这些命令封装成在一个类中,然后用户(调用者)再对这个类进行操作,这就是Command模式,换句话说,
152155
本来用户(调用者)是直接调用这些命令的,如菜单上打开文档(调用者),就直接指向打开文档的代码,使用Command模式,就是在这两者之间增加一个中间者,
@@ -168,6 +171,7 @@ Stratrgy优点:体现了高内聚低耦合的特性,增强扩展性
168171

169172

170173
Strategy适合下列场合:
174+
171175
1).以不同的格式保存文件;
172176

173177
2).以不同的算法压缩文件;
@@ -186,6 +190,7 @@ Mediator定义:
186190
Mediator模式在事件驱动类应用中比较多,例如界面设计GUI.;聊天,消息传递等,
187191

188192
什么情况下使用中介者模式:
193+
189194
1)、 N 个对象之间产生了相互的依赖关系,其中N 大于2,注意是相互的依赖;
190195
2)、 多个对象有依赖关系,但是依赖的行为尚不确定或者有发生改变的可能,在这种情况下一般建议采
191196
用中介者模式,降低变更引起的风险扩散;
@@ -206,17 +211,21 @@ Visitor定义
206211

207212

208213
最后补充下类的设计原则
214+
209215
六大设计原则:
216+
210217
1、单一设计原则(Single Responsibility Principle)
211218
单一设计原则:应该有且仅有一个原因引起类的变更
212219
单一原则的好处:
220+
213221
1)、类的复杂性降低
214222
2)、可读性提高
215223
3)、可维护性提高
216224
4)、变更引起的风险降低
217225

218226
2、里氏替换原则(Liskov Substitution Principle)
219227
里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象。
228+
220229
1)、子类必须完全的实现父类的方法。
221230
2)、子类可以有自己的个性。
222231
3)、覆盖或实现父类的方法时输入参数可以被放大。(子类中方法的前置条件必须与超类中被覆盖的方法的前置条件相同或者更宽松。)
@@ -225,12 +234,14 @@ Visitor定义
225234
3、依赖倒置原则(Dependence Inversion Principle)
226235

227236
4、接口隔离原则(Interface Segregation Principle)
237+
228238
1)、接口尽量小。
229239
2)、接口要高内聚。
230240
3)、定制服务
231241
4)、接口设计是有限度的。
232242

233243
5、迪米特法则(Low Of Demeter)
244+
234245
只和朋友交流。
235246
朋友间也是有距离的。
236247
是自己的就是自己的。

0 commit comments

Comments
 (0)