设计模式回顾
面向对象原则的总结:
1、对象是具有明确定义的责任的事物;
2、对象对自己负责;
3、封装指的是任何形式的隐藏:
(1)数据隐藏
(2)实现隐藏
(3) 类隐藏
(4)设计隐藏
(5)实例化隐藏
4、使用共性和可变性分析抽象出行为和数据中的变化;
5、按接口设计
6、将继承看成一种将变化概念化的方法,而不是创建已有对象的特殊情况;
7、将变化放入一个类中,并与该类中的其他变化解耦;
8、力求松耦合、强内聚;
9、将使用一个对象的代码与创建该对象的代码分离;
10、在应用“一次且仅一次”规则时要绝对小心;
11、通过“按意图编程”,使用反映意图的名字,确保代码的可选性;
12、在编程之前就考虑代码的可测试性。
隐藏实现的价值在于,使开放人员能够容易地添加新的实现,因为客户对象不知道当前实现的具体工作细节。设计师不应该在了解所需对象之前操心对象的实例化。
模式是从背景设计的微观示例;按接口设计和多态就是一种从背景设计。
模式能够帮助引导我们进行重构;模式与代码的可测试性的内在一致性。良好的编程和设计技术往往都不会相互抵触。即使乍看上去有些矛盾,稍加深入研究,就会发现它们都是殊途同归。
考察模式的如下方面将非常有用:
1、这个模式隐藏了什么实现? 这样我们就可以修改它。
2、这个模式中有什么共性? 这有助于我们找到共性。
3、这个模式中对象的责任是什么? 这可以更容易地按责任进行分解。
4、这些对象之间有什么关系? 这将提供这些对象的约束因素的信息。
5、这个模式本身怎样成为从背景设计的微观示例? 这使我们能够更好地理解为什么这个模式是优秀设计。
面向对象原则的总结:
1、对象是具有明确定义的责任的事物;
2、对象对自己负责;
3、封装指的是任何形式的隐藏:
(1)数据隐藏
(2)实现隐藏
(3) 类隐藏
(4)设计隐藏
(5)实例化隐藏
4、使用共性和可变性分析抽象出行为和数据中的变化;
5、按接口设计
6、将继承看成一种将变化概念化的方法,而不是创建已有对象的特殊情况;
7、将变化放入一个类中,并与该类中的其他变化解耦;
8、力求松耦合、强内聚;
9、将使用一个对象的代码与创建该对象的代码分离;
10、在应用“一次且仅一次”规则时要绝对小心;
11、通过“按意图编程”,使用反映意图的名字,确保代码的可选性;
12、在编程之前就考虑代码的可测试性。
隐藏实现的价值在于,使开放人员能够容易地添加新的实现,因为客户对象不知道当前实现的具体工作细节。设计师不应该在了解所需对象之前操心对象的实例化。
模式是从背景设计的微观示例;按接口设计和多态就是一种从背景设计。
模式能够帮助引导我们进行重构;模式与代码的可测试性的内在一致性。良好的编程和设计技术往往都不会相互抵触。即使乍看上去有些矛盾,稍加深入研究,就会发现它们都是殊途同归。
考察模式的如下方面将非常有用:
1、这个模式隐藏了什么实现? 这样我们就可以修改它。
2、这个模式中有什么共性? 这有助于我们找到共性。
3、这个模式中对象的责任是什么? 这可以更容易地按责任进行分解。
4、这些对象之间有什么关系? 这将提供这些对象的约束因素的信息。
5、这个模式本身怎样成为从背景设计的微观示例? 这使我们能够更好地理解为什么这个模式是优秀设计。