一、为什么需要Java设计模式
设计模式是在软件工程实践过程中,程序员们总结出的良好的编程方法。
设计模式能够增加系统的健壮性,易修改性和可扩展性,当你进行开发的软件规模比较大的时候,良好的设计模式会给编程带来便利,让系统更加稳定,这些在自己编写较小的程序的时候是体现不出来的。现在大多数框架都使用了很多设计模式,正是因为有了这些设计模式,才能让程序更好的工作。自己在写代码的时候,如果能合理的使用设计模式,一定能让你的面向对象编程大放光彩,在系统模块化和信息隐藏方面做的更好。至于怎么学好设计模式,一定是多练,多看,《headfirst design pattern》和《大话设计模式》这两本书都不错,很通俗易懂,可以多多参考。
我们也不能陷入模式的陷阱,为了使用模式而去套模式,那样会陷入形式主义。我们在使用模式的时候,一定要注意模式的意图(intent),而不 要过多的去关注模式的实现细节,因为这些实现细节在特定情况下,可能会发生一些改变。不要顽固地认为设计模式一书中的类图或实现代码就代表了模式本身。
二、设计模式分类:
创建型模式(5种)
工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式
结构型模式(7种)
适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式
行为型模式(11种)
策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
其他(2种)
并发型模式和线程池模式
用一个图片来整体描述一下:
三、设计模式遵循的原则有6个:
1、开闭原则(Open Close Principle)
对扩展开放,对修改关闭。
2、里氏代换原则(Liskov Substitution Principle)
只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。
3、依赖倒转原则(Dependence Inversion Principle)
这个是开闭原则的基础,针对接口编程,依赖于抽象而不依赖于具体。
4、接口隔离原则(Interface Segregation Principle)
使用多个隔离的借口来降低耦合度。
5、迪米特法则(最少知道原则)(Demeter Principle)
一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。
6、合成复用原则(Composite Reuse Principle)
原则是尽量使用合成/聚合的方式,而不是使用继承。继承实际上破坏了类的封装性,超类的方法可能会被子类修改。
本文暂时没有评论,来添加一个吧(●'◡'●)