http://cj723.cnblogs.comhtml
1:简单工厂模式 20210805算法
将“类实例化的操做”与“使用对象的操做”分开,让使用者不用知道具体参数就能够实例化出所须要的“产品”类,从而避免了在客户端代码中显式指定,实现了解耦。编程
即便用者可直接消费产品而不须要知道其生产的细节设计模式
Input:你指定表明实例的变数,工厂就会返回相应的类的对象实例。单元测试
例子:支付方式 https://www.cnblogs.com/hzhhhbb/p/11406771.html测试
2:策略模式 20210806设计
--在策略模式(Strategy Pattern)中,一个类的行为或其算法能够在运行时更改。这种类型的设计模式属于行为型模式。htm
--在策略模式中,咱们建立表示各类策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。对象
--策略模式是一种定义一系列算法的方法,从概念上来看,全部这些算法完成的都是相同的工做,只是实现不一样,它能够以相同的方式调用全部的算法,减小了各类算法类与使用算法类之间的耦合。blog
--策略模式的优势是简化了单元测试,由于每一个算法都有本身的类,能够经过本身的接口单独测试。
https://www.runoob.com/design-pattern/strategy-pattern.html
3:单一职责原则 20210810
就一个类而言,有且仅有一个引发它变化的缘由。若是一个类承载的职责的过多,就等于把这些职责耦合在一块儿。一个职责的变化的时候,可能会抑制或者削弱其余职责的能力,这种耦合会致使脆弱的设计。
当变化发生时候,设计会遭受到意想不到的变化。例子:俄罗斯方块游戏
4:开放-封闭原则 20210810
对扩展开放,对于更改是封闭的。即面对需求,程序是经过增长新代码来实现的,而不是经过更改来实现的。
在咱们最初写代码的时候,咱们是假设不会变化的,当变化发生的时候,咱们就建立抽象来隔离之后发生的同类变化。
开放-封闭原则是整个面像对象设计的核心所在,遵循此原则会使咱们的代码可维护,可复用,可扩展,灵活性好。
开发人员仅对程序中呈现频繁变化的那些部分作出抽象。
5:依赖倒转原则 20210810
A:高层模块不该该依赖底层模块,二者都应该依赖抽象。
B:抽象不该该依赖细节,细节应该依赖抽象。
针对接口编程,不要对实现编程。
里氏代换原则:子类型必须可以替换掉他们的父类型。(一个软件实体若是使用的是他们父类,那么必定适用于其子类,而且察觉不出父类对象和子类对象的区别。也就是说,在程序里面,把父类替换成子类,程序的行为没有区别。)
依赖倒转原则能够说是面向对象编程的标志。用哪一种语言来编写程序不重要。
若是编写时考虑的都是如何面向抽象编程,而不是面向细节编程,即程序中全部的依赖关系都是终止于抽象类或者接口类,这样的设计就称为面向对象编程,不然就是过程式的编程。
6: 装饰模式 20210812 人和穿衣服
有效的把类的核心职责与装饰功能区分开了。为已有功能动态的添加更多功能的一种方式。
装饰模式提供了这样一种方式,把非核心代码,装饰功能放在单独的类中,并让这个类包装它须要装饰的对象。当须要执行特殊行为的时候,客户代码就能够在运行时候按须要有选择的,按顺序地使用装饰功能包装对象。
就增长功能来讲,装饰模式比增长子类更加灵活。