OO基础:抽象 封装 多态 继承
OO原则:
1.封装变化
2.多用组合,少用继承
3.针对接口编程,不针对实现编程
4.为交互对象之间的松耦合设计而努力
5.类应该对扩展开发,对修改关闭
6.依赖倒置原则:要依赖抽象,不要依赖具体类。不能让高层组建依赖低层组件,而且,不管高层或低层组件,“两者”都应该依赖于抽象。
7.最少知识原则:只和你的密友谈话。
8.好莱坞原则:别调用我们,我们会调用你。
9.一个类应该只有一个引起变化的原因。
OO模式:
1.策略模式:定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
2.观察着模式:在对象之间定义一对多的依赖,这样一来,当一个对象改变,依赖它的对象都会收到通知,并自动更新。
3.装饰者模式:动态地将责任附加到对象上。想要扩展的功能,装饰者提供有别于继承的另一种选择。(增加新的行为和责任)
4.工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
5.抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
6.单件模式:确保一个类只有一个实例,并提供一个全局访问点。
7.命令模式:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。
8.适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。(将接口转化成不同接口)
9:外观模式:提供了一个统一接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。(简化接口)
10:模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
11.迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。
12.组合模式:允许你将对象组成树形结构来表现“整体/部分”的层次结构。组合能让客户以一致的方式处理个别对象和对象组合。
13.状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。
14.代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问。(被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象)
15.复合模式:在一个解决方案中结合两个或多个模式,以解决一般或重复发生的问题。
16.桥接模式:使用桥接模式不只改变你的实现,也改变你的抽象。
17.生成器:使用生成器模式封装一个产品的构造过程,并允许按步骤构造。
18.责任链:当你想要让一个以上的对象有机会能够处理某个请求的时候,就使用责任链的模式。
19.蝇量:如想让某个类的一个实例能用来提供许多“虚拟实例”,就是用蝇量模式。
20.解释器:使用解释器模式为语言创建解释器。
21.中介者:使用中介者模式来集中相关对象之间复杂的沟通和控制方式。
22.备忘录:当你需要让对象返回之前的状态时(例如,你的客户请求“撤销”),就是用备忘录模式。
23.原型:当创建给定类的实例的过程很昂贵或很复杂时,就是用原型模式。
24.访问者:当你想要为一个对象的组合增加新的能力,且封装并不重要时,就是用访问者模式。