设计模式有 6 大设计原则:
单⼀职责原则:
就⼀个类⽽⾔,应该仅有⼀个引起它变化的原因。
开放封闭原则:
软件实体可以扩展,但是不可修改。即⾯对需求,对程序的改动可以通过增加代码来完成,但是不能改动现有的代码。
⾥⽒代换原则:
⼀个软件实体如果使⽤的是⼀个基类,那么⼀定适⽤于其派⽣类。即在软件中,把基类替换成派⽣类,程序的⾏为没有变化。
依赖倒转原则:
抽象不应该依赖细节,细节应该依赖抽象。即针对接⼝编程,不要对实现编程。
迪⽶特原则:
如果两个类不直接通信,那么这两个类就不应当发⽣直接的相互作⽤。如果⼀个类需要调⽤另⼀个类的某个⽅法的话,可以通过第三个类转发这个调⽤。
接⼝隔离原则:
每个接⼝中不存在派⽣类⽤不到却必须实现的⽅法,如果不然,就要将接⼝拆分,使⽤多个隔离的 接⼝。
设计模式分为三类:
创造型模式:
单例模式、⼯⼚模式、建造者模式、原型模式
结构型模式:
适配器模式、桥接模式、外观模式、组合模式、装饰模式、享元模式、代理模式
⾏为型模式:
责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板⽅法模式、访问者模式。
介绍常见的几种设计模式:
单例模式:
保证⼀个类仅有⼀个实例,并提供⼀个访问它的全局访问点。
⼯⼚模式:
包括简单⼯⼚模式、抽象⼯⼚模式、⼯⼚⽅法模式
简单⼯⼚模式:
主要⽤于创建对象。⽤⼀个⼯⼚来根据输⼊的条件产⽣不同的类,然后根据不同类的虚函数得到不同的结果。
抽象⼯⼚模式:
定义了⼀个创建⼀系列相关或相互依赖的接⼝,⽽⽆需指定他们的具体类。
观察者模式:
定义了⼀种⼀对多的关系,让多个观察对象同时监听⼀个主题对象,主题对象发⽣变化时,会通知所有的观察者,使他们能够更新⾃⼰。
装饰模式:
动态地给⼀个对象添加⼀些额外的职责,就增加功能来说,装饰模式⽐⽣成派⽣类更为灵活。