跳至主要內容
面向对象原则

面向对象设计六大原则

单一职责原则

单一职责原则(Single Responsibility Principle),应该有且仅有一个原因引起类的变更。

简单点说,一个类,最好只负责一件事。

开放-封闭原则

开放-封闭原则(Open Close Principle),软件实体(类、模块、函数)等应该可以扩展,但是不可修改。

对于扩展是开放的;对于更改是封闭的。

里氏替换原则

里氏替换原则(Liskov Substitution Principle),子类可以替换父类。


钝悟...大约 2 分钟设计设计模式设计设计模式
设计模式

设计模式

设计模式是软件设计中常见问题的典型解决方案。

📖 内容

创建型模式


钝悟...大约 2 分钟设计设计模式设计设计模式
设计模式之原型模式

设计模式之原型模式

意图

原型模式(Prototype)是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。

原型模式主要用于对象的复制,它的核心是就是类图中的原型类 Prototype。Prototype 类需要具备以下两个条件:

  • 实现 Cloneable 接口。在 java 语言有一个 Cloneable 接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用 clone 方法。在 java 虚拟机中,只有实现了这个接口的类才可以被拷贝,否则在运行时会抛出 CloneNotSupportedException 异常。
  • 重写 Object 类中的 clone 方法。Java 中,所有类的父类都是 Object 类,Object 类中有一个 clone 方法,作用是返回对象的一个拷贝,但是其作用域 protected 类型的,一般的类无法调用,因此,Prototype 类需要将 clone 方法的作用域修改为 public 类型。

钝悟...大约 6 分钟设计设计模式设计设计模式
设计模式之建造者模式

设计模式之建造者模式

意图

建造者模式(Builder)是一种创建型设计模式, 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。

使用建造者模式,用户就只需要指定需要建造的类型,具体的建造过程和细节并不需要知道。

建造者模式允许修改一个产品的内部表示。

它将构造和表示两块代码隔离开来。

它很好的控制了构建过程。

img
img

钝悟...大约 8 分钟设计设计模式设计设计模式
设计模式之抽象工厂模式

设计模式之抽象工厂模式

意图

抽象工厂模式 (Abstract Factory)是一种创建型设计模式, 它能创建一系列相关的对象, 而无需指定其具体类。

**优点 **

  • 抽象工厂模式隔离了具体类的生成,用户并不需要知道什么被创建。由于这种隔离,更换一个具体工厂变得相对容易。所有的具体工厂都实现了抽象工厂中定义的那些公共接口,因此只需要改变具体工厂的实例,就可以在某种程度上改变整个软件系统的行为。另外,应用抽象工厂模式可以实现高内聚低耦合的设计目的,因此抽象工厂模式得到了广泛的应用。

  • 当一个产品族中的多个对象被设计成一起工作时,它能够保证客户端始终只使用同一个产品族中的对象。这对一些需要根据当前环境来决定其行为的软件系统来说,是一种非常实用的设计模式。

  • 增加新的具体工厂和产品族很方便,无须修改已有系统,符合“开放封闭原则”


钝悟...大约 10 分钟设计设计模式设计设计模式
设计模式之工厂方法模式

设计模式之工厂方法模式

意图

工厂方法模式 (Factory Method)是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 让子类决定实例化对象的类型。

  • 工厂模式中,增加一种产品类,就要增加一个工厂类:因为每个工厂类只能创建一种产品的实例。
  • 工厂模式遵循“开放-封闭原则”:工厂模式中,新增一种产品并不需要修改原有类,仅仅是扩展。

简单工厂模式相比于工厂方法模式


钝悟...大约 9 分钟设计设计模式设计设计模式
设计模式之简单工厂模式

设计模式之简单工厂模式

简介

简单工厂模式思想

简单工厂模式 (Simple Factory) 又叫静态工厂方法(Static Factory Method)模式。

简单工厂模式通常是定义一个工厂类,这个类可以根据不同变量返回不同类的产品实例

简单工厂模式是一种对象创建型模式。但是简单工厂模式不属于23 种 Gof 设计模式之一。

简单工厂模式要点


钝悟...大约 3 分钟设计设计模式设计设计模式
设计模式之单例模式

设计模式之单例模式

意图

单例模式(Singleton)是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。

单例 (Singleton) 类声明了一个名为 get­Instance 获取实例的静态方法来返回其所属类的一个相同实例。

单例的构造函数必须对客户端 (Client) 代码隐藏。 调用 get­Instance 方法必须是获取单例对象的唯一方式。


钝悟...大约 9 分钟设计设计模式设计设计模式
设计模式概述

设计模式概述

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

创建型模式

创建型模式简介

创建型模式抽象了实例化的过程。它将系统与它的对象创建、结合、表示的方式分离


钝悟...大约 4 分钟设计设计模式设计设计模式
设计模式之状态模式

设计模式之状态模式

意图

状态模式(State) 是一种行为设计模式, 让你能在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。

适用场景

  • 如果对象需要根据自身当前状态进行不同行为, 同时状态的数量非常多且与状态相关的代码会频繁变更的话, 可使用状态模式。
  • 如果某个类需要根据成员变量的当前值改变自身行为, 从而需要使用大量的条件语句时, 可使用该模式。
  • 当相似状态和基于条件的状态机转换中存在许多重复代码时, 可使用状态模式。

钝悟...大约 6 分钟设计设计模式设计设计模式
2
3