auto commit
This commit is contained in:
parent
abed3417aa
commit
1454b48fd3
|
@ -334,7 +334,7 @@ StatisticsDisplay.update:1.0 1.0 1.0
|
|||
|
||||
## 设计原则
|
||||
|
||||
类应该对扩展开放,对修改关闭:也就是添加新功能时不需要修改代码。在本章问题中该原则体现在,饮料可以动态添加新的配料,而不需要去修改饮料的代码。观察则模式也符合这个原则。不可能把所有的类设计成都满足这一原则,应当把该原则应用于最有可能发生改变的地方。
|
||||
类应该对扩展开放,对修改关闭:也就是添加新功能时不需要修改代码。在本章问题中该原则体现在,饮料可以动态添加新的配料,而不需要去修改饮料的代码。观察者模式也符合这个原则。不可能把所有的类设计成都满足这一原则,应当把该原则应用于最有可能发生改变的地方。
|
||||
|
||||
## Java I/O 中的装饰者模式
|
||||
|
||||
|
@ -750,7 +750,7 @@ MarinaraSauce
|
|||
|
||||
## 模式类图
|
||||
|
||||
使用一个私有构造器、一个私有静态变量以及一个公有静态函数来实现。
|
||||
使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。
|
||||
|
||||
私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。
|
||||
|
||||
|
@ -843,7 +843,7 @@ if (uniqueInstance == null) {
|
|||
|
||||
## 问题描述
|
||||
|
||||
设计一个遥控器,它有很多按钮,每个按钮可以发起一个命令,命令会让一个家电完成相应操作。有非常多的家电,并且之后会增加家电。
|
||||
设计一个遥控器,它有很多按钮,每个按钮可以发起一个命令,命令会让一个家电完成相应操作。
|
||||
|
||||
<div align="center"> <img src="../pics//f6be22cb-d64f-4ee5-87b7-cbc4e6255c0e.jpg" width="700"/> </div><br>
|
||||
|
||||
|
@ -1084,7 +1084,7 @@ prepareRecipe() 方法就是模板方法,它确定了其它四个方法的具
|
|||
|
||||
## 设计原则
|
||||
|
||||
**好莱坞原则** :别调用(打电话给)我们,我们会调用(打电话给)你。这一原则可以防止依赖腐败,即防止高层组件依赖低层组件,低层组件又依赖高层组件。该原则在模板方法的体现为,只有父类会调用子类,子类不会调用父类。
|
||||
**好莱坞原则** :别调用(打电话给)我们,我们会调用(打电话给)你。这一原则可以防止依赖腐败,即防止高层组件依赖底层组件,底层组件又依赖高层组件。该原则在模板方法的体现为,只有父类会调用子类,子类不会调用父类。
|
||||
|
||||
## 钩子
|
||||
|
||||
|
@ -1463,7 +1463,7 @@ Context 的 request() 方法委托给 State 对象去处理。当 Context 组合
|
|||
|
||||
所谓的状态转移,是指 Context 在运行过程中由于一些条件发生改变而使得 State 对象发生改变,注意必须要是在运行过程中。
|
||||
|
||||
状态模式主要是用来解决状态转移的问题,当状态发生转移了,那么 Context 对象就会改变它的行为;而策略模式主要是用来封装一组可以互相替代的算法族,并且可以根据需要动态地去替换 Context 需要使用哪个算法。
|
||||
状态模式主要是用来解决状态转移的问题,当状态发生转移了,那么 Context 对象就会改变它的行为;而策略模式主要是用来封装一组可以互相替代的算法族,并且可以根据需要动态地去替换 Context 使用的算法。
|
||||
|
||||
## 问题描述
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user