![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
创建型模式
文章平均质量分 74
weixin_46722612
这个作者很懒,什么都没留下…
展开
-
创建型模式——单例
单例模式(Singleton)的目的是为了保证在一个进程中,某个类有且仅有一个实例。 因为这个类只有一个实例,因此,自然不能让调用方使用new Xyz()来创建实例了。所以,单例的构造方法必须是private,这样就防止了调用方自己创建实例,但是在类的内部,是可以用一个静态字段来引用唯一创建的实例的: public class Singleton { // 静态字段引用唯一实例: private static final Singleton INSTANCE = new Singleton.原创 2021-03-23 08:32:39 · 42 阅读 · 0 评论 -
创建型模式——原型
原型模式,即Prototype,是指创建新对象的时候,根据现有的一个原型来创建。 我们举个例子:如果我们已经有了一个String[]数组,想再创建一个一模一样的String[]数组,怎么写? 实际上创建过程很简单,就是把现有数组的元素复制到新数组。如果我们把这个创建过程封装一下,就成了原型模式。用代码实现如下: // 原型: String[] original = { "Apple", "Pear", "Banana" }; // 新对象: String[] copy = Arrays.copyOf(or.原创 2021-03-23 08:32:27 · 50 阅读 · 0 评论 -
创建型模式——抽象工厂
抽象工厂模式(Abstract Factory)是一个比较复杂的创建型模式。 抽象工厂模式和工厂方法不太一样,它要解决的问题比较复杂,不但工厂是抽象的,产品是抽象的,而且有多个产品需要创建,因此,这个抽象工厂会对应到多个实际工厂,每个实际工厂负责创建多个实际产品: 这种模式有点类似于多个供应商负责提供一系列类型的产品。我们举个例子: 假设我们希望为用户提供一个Markdown文本转换为HTML和Word的服务,它的接口定义如下: public interface AbstractFactory { .原创 2021-03-22 19:41:32 · 50 阅读 · 0 评论 -
创建型模式——生成器
生成器模式(Builder)是使用多个“小型”工厂来最终创建出一个完整对象。 当我们使用Builder的时候,一般来说,是因为创建这个对象的步骤比较多,每个步骤都需要一个零部件,最终组合成一个完整的对象。 我们仍然以Markdown转HTML为例,因为直接编写一个完整的转换器比较困难,但如果针对类似下面的一行文本: # this is a heading 转换成HTML就很简单: <h1>this is a heading</h1> 因此,我们把Markdown转HTML看作一.原创 2021-03-22 19:27:00 · 44 阅读 · 0 评论 -
创建型模式——工厂方法
工厂方法即Factory Method,是一种对象创建型模式。 工厂方法的目的是使得创建对象和使用对象是分离的,并且客户端总是引用抽象工厂和抽象产品: 我们以具体的例子来说:假设我们希望实现一个解析字符串到Number的Factory,可以定义如下: public interface NumberFactory { Number parse(String s); } 有了工厂接口,再编写一个工厂的实现类: public class NumberFactoryImpl implements Nu.原创 2021-03-22 14:31:59 · 62 阅读 · 0 评论