参考教材:http://www.runoob.com/design-pattern/design-pattern-intro.html
一、六大设计原则:
1、开闭原则:实现热插拔,提高扩展性。
2、里氏代换原则:实现抽象的规范,实现子父类互相替换;
3、依赖倒转原则:针对接口编程,实现开闭原则的基础;
4、接口隔离原则:降低耦合度,接口单独设计,互相隔离;
5、迪米特法则,又称不知道原则:功能模块尽量独立;
6、合成复用原则:尽量使用聚合,组合,而不是继承;
二、设计模式分类:
1、创建型模式-->对象怎么来,创建对象的流程
2、结构型模式-->对象和谁有关,对象的结构
3、行为型模式-->对象与对象在干嘛
4、J2EE 模式-->对象合起来要干嘛(表现层,文中表示层个人感觉用的不准确)java是面向对象的语言,所以要搞好对象,模式(套路)就是用来更加好的搞对象滴。
三、最后需要提的是,使用设计模式的目的是,简化上层调用、降低耦合、增强项目的可维护性。这么多种设计模式,都有其适应的场合,但不是每种场合都适合使用设计模式,因为每种设计模式除了带来方便,也会带来新的限制。所以滥用设计模式的后果会非常严重,严重到一个需求变动就可能让整个系统面临重构。
所以实际工作中,能经常见到的设计模式就单例模式、代理模式等几个简单的,而像抽象工厂模式这些高端的很难碰到。当然在很多长期维护的大型项目源码中,还是能看到不少设计模式的应用。
另外,有些设计模式虽然名字和代码结构不一样,但实现方式基本一样。比如中介者模式与外观模式,其实从代码实现来看,中介者就类似于这个星形结构中的外观。但我们还是会用设计模式对应的名字来定义类名,这样做对于我们阅读代码和理解代码结构,有很大的帮助。