设计模式解决问题:
设计模式 是对软件设计中 普遍存在(反复出现) 的各种问题,所提出的 解决方案 。
常用七大原则:
1、单一职责原则
对于类来说,即一个类只负责一个职责。比如userDao这个类他只负责user表的增删改查等操作。
注意事项:
1、降低类的复杂度,一个类只负责一个职责
2、提高类的可读性,可维护性
3、降低变更引起的风险
2、接口隔离原则
1、客户端不应该依赖他不需要的接口
2、一个类对另外一个类的依赖性应该是建立在最小的接口上
3、不应当将不同的接口合并在一起,形成一个臃肿的大接口,这是对接口的污染
4、使用多个专门的接口要比使用单一的总接口要好
3、依赖倒转原则
基本介绍
1、高层模块不应该依赖低层模块,二者应该依赖其抽象
2、抽象不应该依赖细节,细节应该依赖抽象
3、依赖倒转的中心思想是面向接口编程
4、使用接口或抽象类的目的是制定好规范,而不涉及具体的操作,把具体的实现交给他的实现类去完成
5、相对于实现的多变性来说,接口或者抽象类要稳定很多,以抽象类或者接口为基础搭建框架会比实现类更稳定。
注意事项
1、低层模块尽量都要有抽象类或接口,或者两者都有,程序稳定性更好
2、变量的声明类型尽量是接口或者抽象类,这样我们变量的引用或者对象间降低耦合,有利于程序扩展和优化
3、继承时遵循里氏替换原则
4、里氏替换原则
基本介绍
1、在使用继承时,遵循里氏替换原则,在子类中尽量不要重写父类方法
2、继承实际上是让两个类耦合性更强, 在适当的情况下可以通过聚合,组合,依赖来解决问题
5、开闭原则
基本介绍
1、开闭原则是编程中最基础、最重要的设计原则
2、一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。用抽象构建框架,用实现扩展细节
3、当软件需要变化,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化
4、使用设计模式的目的就是遵循开闭原则
6、迪米特法则
基本介绍
1、一个对象应该对其他对象保持最少的了解
2、类与类关系密切,耦合度越大
3、迪米特法则又叫最少知道原则,即一个类对自己的依赖的类知道的越少越好。
迪米特法则的优点
1、降低了类之间的耦合度,提高了模块的相对独立性。
2、由于亲合度降低,从而提高了类的可复用率和系统的扩展性。
7、合成复用原则
基本介绍
原则上尽量使用合成/聚合的方式,而不是使用继承
设计模式目的
编写软件过程中,程序员面临着来自耦合性、内聚性以及可维护性,可扩展性,重用性,灵活性等方面的挑战,设计模式为了让程序具体有更好的
1、代码重用性
2、可读性
3、可扩展性
4、可靠性
5、使程序呈现高内聚,低耦合的特性
设计模式类型
创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式
结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式
行为型模式:模板方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、责任链模式