面向对象设计六大原则
单一职责原则
单一职责原则(Single Responsibility Principle),应该有且仅有一个原因引起类的变更。
简单点说,一个类,最好只负责一件事。
开放-封闭原则
开放-封闭原则(Open Close Principle),软件实体(类、模块、函数)等应该可以扩展,但是不可修改。
对于扩展是开放的;对于更改是封闭的。
里氏替换原则
里氏替换原则(Liskov Substitution Principle),子类可以替换父类。
单一职责原则(Single Responsibility Principle),应该有且仅有一个原因引起类的变更。
简单点说,一个类,最好只负责一件事。
开放-封闭原则(Open Close Principle),软件实体(类、模块、函数)等应该可以扩展,但是不可修改。
对于扩展是开放的;对于更改是封闭的。
里氏替换原则(Liskov Substitution Principle),子类可以替换父类。
原型模式(Prototype)是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。
原型模式主要用于对象的复制,它的核心是就是类图中的原型类 Prototype。Prototype 类需要具备以下两个条件:
建造者模式(Builder)是一种创建型设计模式, 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。
使用建造者模式,用户就只需要指定需要建造的类型,具体的建造过程和细节并不需要知道。
建造者模式允许修改一个产品的内部表示。
它将构造和表示两块代码隔离开来。
它很好的控制了构建过程。
抽象工厂模式 (Abstract Factory)是一种创建型设计模式, 它能创建一系列相关的对象, 而无需指定其具体类。
**优点 **
抽象工厂模式隔离了具体类的生成,用户并不需要知道什么被创建。由于这种隔离,更换一个具体工厂变得相对容易。所有的具体工厂都实现了抽象工厂中定义的那些公共接口,因此只需要改变具体工厂的实例,就可以在某种程度上改变整个软件系统的行为。另外,应用抽象工厂模式可以实现高内聚低耦合的设计目的,因此抽象工厂模式得到了广泛的应用。
当一个产品族中的多个对象被设计成一起工作时,它能够保证客户端始终只使用同一个产品族中的对象。这对一些需要根据当前环境来决定其行为的软件系统来说,是一种非常实用的设计模式。
增加新的具体工厂和产品族很方便,无须修改已有系统,符合“开放封闭原则”。
工厂方法模式 (Factory Method)是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 让子类决定实例化对象的类型。
简单工厂模式相比于工厂方法模式
简单工厂模式 (Simple Factory) 又叫静态工厂方法(Static Factory Method)模式。
简单工厂模式通常是定义一个工厂类,这个类可以根据不同变量返回不同类的产品实例。
简单工厂模式是一种对象创建型模式。但是简单工厂模式不属于23 种 Gof 设计模式之一。
单例模式(Singleton)是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。
单例 (Singleton) 类声明了一个名为 getInstance
获取实例的静态方法来返回其所属类的一个相同实例。
单例的构造函数必须对客户端 (Client) 代码隐藏。 调用 getInstance
方法必须是获取单例对象的唯一方式。
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
创建型模式抽象了实例化的过程。它将系统与它的对象创建、结合、表示的方式分离。
状态模式(State) 是一种行为设计模式, 让你能在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。