单例模式:仅允许有一个实例,节省内存,共享资源
工厂模式:需要某个类就产生某个类
代理模式:增加代理类,保护真正的类
策略模式:选择使用哪个算法或者功能
适配器模式:实现类中的方法名的转化,然后得到调用者需要的方法名称
装饰模式:在不改变现有对象结构的情况下,添加新功能
观察者模式:一个消息发送给多个观察者,多个观察者在观察等待一个消息的发出,准备接收一个消息,把一个消息发送给多个订阅这个消息的人
设计原则:
开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求,作用:可以提高代码的可复用性,软件测试时只需要对扩展的代码进行测试就可以了,稳定性高和延续性强,从而易于扩展和维护
里氏替换原则:子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。通过重写父类的方法来完成新的功能,整个继承体系的可复用性会比较差
依赖倒置原则:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。其核心思想是:要面向接口编程,不要面向实现编程。是实现开闭原则的重要途径之一,它降低了客户与实现模块之间的耦合。
单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,单一职责原则的核心就是控制类的粒度大小、将对象解耦、提高其内聚性。降低类的复杂度,提高类的可读性,提高系统的可维护性,变更引起的风险降低
接口隔离原则:要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。提高了系统的内聚性,能减少代码冗余
接口隔离原则和单一职责都是为了提高类的内聚性、降低它们之间的耦合性,体现了封装的思想,但两者是不同的:
单一职责原则注重的是职责,而接口隔离原则注重的是对接口依赖的隔离。
单一职责原则主要是约束类,它针对的是程序中的实现和细节;接口隔离原则主要约束接口,主要针对抽象和程序整体框架的构建。
策略工厂模式区别:
相似:
在结构上相似,都是对象的继承和多态,所以非常难区分。
不同:
1 用途不同:
抽象工厂是对对象的管理,它的作用就是创建不同的对象;
策略模式是对行为的管理,它的作用是让一个对象在不同情况下选择行为。
2 方式不同:
工厂模式是创建型的设计模式,它接受指令,创建出符合要求的实例。它主要解决的是资源的统一分发,将对象的创建完全独立出来,不同的对象对用同一个方法,结果不同。
策略模式是为了解决的是策略的切换与扩展,更简洁的说是定义策略族,分别封装起来,让他们之间可以相互替换,同一个对象调用同一个方法,结果不同。