设计模式简介:
设计模式(Design pattern)表明了最佳的实践,一般被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程当中面临的通常问题的解决方案。这些解决方案是众多软件开发人员通过至关长的一段时间的试验和错误总结出来的。java
设计模式提供了一个标准的术语系统,且具体到特定的情景。例如,单例设计模式意味着使用单个对象,这样全部熟悉单例设计模式的开发人员都能使用单个对象,而且能够经过这种方式告诉对方,程序使用的是单例模式。编程
设计模式已经经历了很长一段时间的发展,它们提供了软件开发过程当中面临的通常问题的最佳解决方案。学习这些模式有助于经验不足的开发人员经过一种简单快捷的方式来学习软件设计。设计模式
附上思惟导图:学习
1.java设计模式可分为三大类:spa
(1)建立型:该模式适用于在建立对象的同时隐藏其建立逻辑的方式,不须要经过实例化new 出来一个对象,这使得程序在判断对于某个实例须要建立那些对象时更加灵活。设计
(2)结构型:注重于类和对象的组合,继承的概念主要用于接口的组合以及定义组合的对象得到新功能的方式。代理
(3)行为型:该模式主要关注的是对象之间的通讯。对象
2.java设计模式面向对象七大原则:blog
(1)开闭原则:(对扩展开放,对修改关闭),在程序须要进行拓展,实现新功能的时候,不能去修改原有的代码体系,只能经过接口,抽象类和继承实现的方式对原程序进行功能拓展。这样使得程序易于维护和升级,可拓展性良好。继承
(2)里氏替换原则:子类可以出如今任何基类出现的地方,是对开闭原则的深层次补充,也就是经过抽象类与其实现类的继承关系来对开闭原则细化,经过子类对基类的继承来实现抽象类的具体实现步骤。简而言之,要想实现一个新的功能,只须要新建一个子类而且该子类可以实现该功能。
(3)依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体。
(4)接口分离原则:使用多个接口而不使用单个接口,下降类之间的耦合度,也就是说设计模式的原则大体为强调下降依赖,下降耦合。
(5)迪米特原则(最少了解原则):一个实体类与其余实体类之间要有尽可能少的关系,使得功能模块独立化。
(6)单一职责原则:每个类只能有一个职责,专一于作某一件事情
(7)合成复用原则:一个类中有另外一个类的对象,尽可能使用合成/聚合的方式达到类的复用,尽可能少用继承。
3.各种型设计模式细化:
建立型:工厂模式,抽象工厂模式,原型模式,单例模式,建造者模式
结构型:适配器模式,桥接模式,组合模式,外观模式,享元模式,代理模式,装饰器模式
行为型:责任链模式,命令模式,解释器模式,迭代器模式,中介者模式,备忘录模式,观察者模式,访问者模式,状态模式,模块方法模式,策略模式