
二十三种设计模式
设计模式可以让你更好的理解代码,学习框架!
☞十一
小z要发光
展开
-
创建型模式之建造者模式
一、什么是建造者模式 使用多个简单的对象一步一步构建成一个复杂的对象。将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示 建造者(Builder)模式的主要角色如下。 产品角色(Product):它是包含多个组成部件的复杂对象,由具体建造者来创建其各个零部件。 抽象建造者(Builder):它是一个包含创建产品各个子部件的抽象方法的接口/抽象类,通常还包含一个返回复杂产品的 getResult() 或 build() 方法。 具体建造者(Concrete Builder):实现 Bu原创 2020-12-10 18:01:06 · 192 阅读 · 1 评论 -
创建型模式之原型模式
1、什么是原型模式 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 实现了在运行期建立和删除原型。 2、原型模式的代码实现 1、构建抽象原型类 这一步也可以省略,在具体原型类中直接实现 java 提供的 Conleable 接口,实现 clone 方法 public abstract class Prototype { abstract Prototype myClone(); } 2、构建具体原型类 /** * 或者直接实现 Conleable 接口,重写 clone原创 2020-12-10 15:41:47 · 202 阅读 · 0 评论 -
创建型模式之单例模式
1、什么是单例模式 确保一个类只有一个实例,并提供该实例的全局访问点。 使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。 私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。 2、单例模式的代码实现 1、饿汉式 - 线程安全(不推荐) 线程不安全问题主要是由于 uniqueInstance 被实例化多次,采取直接实例化 uniqueInstance 的方式就不会产生线程不安全问题。 但是直接实例化的方式也丢失了延迟实例化带来的节约资源的好处。原创 2020-12-09 16:01:47 · 143 阅读 · 1 评论 -
创建型模式之抽象工厂
1、什么是抽象工厂 提供一个接口,用于创建 相关的对象家族 。 抽象工厂模式创建的是对象家族,也就是很多对象而不是一个对象,并且这些对象是相关的, 也就是说必须一起创建出来。而工厂方法模式只是用于创建一个对象,这和抽象工厂模式有很大不同。 2、抽象工厂的代码实现 public class AbstractProductA { } public class AbstractProductB { } public class ProductA1 extends AbstractProductA原创 2020-10-13 17:14:52 · 88 阅读 · 0 评论 -
创建型模式之工厂方法
1、什么是工厂方法 定义了一个创建对象的接口,但由子类决定要实例化哪个类。工厂方法把实例化操作推迟到子类。 2、工厂方法的代码实现 public class SimpleFactory { public Product createProduct(int type) { if (type == 1) { return new ConcreteProduct1(); } else if (type == 2) { r原创 2020-10-13 16:46:32 · 178 阅读 · 0 评论 -
创建型模式之简单工厂
1、什么是简单工厂? 简单工厂模式是在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。 Tips:简单工厂属于创建型设计模式,但是不属于二十三种设计模式。 2、简单工厂的代码实现 public class SimpleFactory { public Product createProduct(int type) { if (type == 1) { return new ConcreteProduct1();原创 2020-10-13 16:36:34 · 119 阅读 · 0 评论