美文网首页我的Android开源之旅
Java设计模式之创建型模式

Java设计模式之创建型模式

作者: xuexiangjys | 来源:发表于2020-04-23 01:18 被阅读0次

工厂模式【Factory】

定义:工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。

普通工厂:工厂是具体的,产品是抽象的。【学习难度:★★☆☆☆,使用频率:★★★★★】

普通工厂

抽象工厂:工厂是抽象的,产品是抽象的。【学习难度:★★★★☆,使用频率:★★★★★】

抽象工厂

对比工厂模式和抽象工厂模式:

1.工厂模式对产品Product进行了抽象,通过传递ProductType进行动态构造Product。

【比较常用】

2.抽象工厂在工厂模式上,又对工厂进行了抽象,抽象了工厂制造提供产品的行为,这样就可以动态设置不同的工厂,生产多种不同品类的产品。

【剥离工厂与产品之前的耦合,便于扩展】


单例模式【Singleton】

【学习难度:★☆☆☆☆,使用频率:★★★★☆】

定义:通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。

单例模式应该说是最常见的一种设计模式了。

主要优点:

1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。

2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。

3、有些类如打印机,全局只需要一个或者一种打印机的。

主要缺点:

1、由于单利模式中没有抽象层,耦合性太强,因此单例类的扩展有很大的困难。

2、单例类的职责过重,在一定程度上违背了“单一职责原则”。

3、滥用单例将带来一些负面问题,如为了节省资源将数据库连接池对象设计为的单例类,可能会导致共享连接池对象的程序过多而出现连接池溢出;如果实例化的对象长时间不被利用,系统会认为是垃圾而被回收,这将导致对象状态的丢失。

因此,在使用单例之前,一定要三思而后行。


建造者模式【Builder】

【学习难度:★★★★☆,使用频率:★★☆☆☆】

定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

建造者模式

构建者类似工厂模式,但是区别在于:建造者模式注重零部件的组装过程【具体的创建在产品内部创建】,而工厂方法模式更注重零部件的创建过程。

使用建造者模式的好处:

1.使用建造者模式可以使客户端不必知道产品内部组成的细节(不需要非常多的构造函数)。

2.具体的建造者类之间是相互独立的,对系统的扩展非常有利。

3.由于具体的建造者是独立的,因此可以对建造过程逐步细化,而不对其他的模块产生任何影响。

使用建造模式的场合:

1.创建一些复杂的对象时,这些对象的内部组成构件间的建造顺序是稳定的,但是对象的内部组成构件面临着复杂的变化。

2.要创建的复杂对象的算法,独立于该对象的组成部分,也独立于组成部分的装配方法时。


原型模式【Prototype】

【学习难度:★★★☆☆,使用频率:★★★☆☆】

定义:该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。

使用场景:

(1)在进行网络请求的时候,一些全局性的配置,例如:baseUrl、timeout、retryCount、cacheMode、Interceptor等,我们不希望每次进行网络请求的时候都进行设置,就可以将这些配置存放在一个单例中,每次创建网络请求的时候,在构造方法里先复制拷贝这些全局属性,然后在网络请求里面提供动态设置这些属性的方法,这样就可以省去很多设置操作,从而实现全局配置,动态变化。

(2)在JS里面,对象的继承就是使用原型模式实现的(没有extends),ES6之后才引入了extends。


项目源码

Github项目源码地址:https://github.com/xuexiangjys/architect-java/tree/master/src/designpattern/creation, 觉得有帮助的话记得给个star!~~

相关文章

  • Java设计模式——生成器模式

    Java设计模式之生成器模式 回顾 这期继续跟大家聊下创建型的设计模式,如果想了解其他创建类的设计模式有哪些,可以...

  • 开发之设计模式-单例模式

    设计模式 设计模式分为三大类:创建型、结构型、行为型在Java中有24中设计模式 创建型:单例 1、为什么用单例模...

  • 《设计模式之美》- 23种设计模式

    学习《设计模式之美》笔记。 23 种经典设计模式共分为 3 种类型,分别是创建型、结构型和行为型 创建型模式 创建...

  • Java设计模式之04_Prototype(原型模式)

    更多Java设计模式:Java设计模式-目录 原型模式是一种简单、易使用的创建型设计模式,通过给出一个原型对象来指...

  • Java设计模式 - 单例模式

    单例模式(Singleton Pattern) 是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型...

  • 深入理解单例模式的设计与实现

    单例模式(Singleton Pattern)是 Java 中相对简单的设计模式之一。这种类型的设计模式属于创建型...

  • 简单工场模式

    概念:工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型...

  • 设计模式-工厂模式

    简介 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型...

  • 设计模式之工厂模式

    简介 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型...

  • Java设计模式——原型模式

    Java设计模式之原型模式 回顾 Java设计模式系列的上一期写了工厂模式,那么创建类的设计模式还有生成器模式和原...

网友评论

    本文标题:Java设计模式之创建型模式

    本文链接:https://www.haomeiwen.com/subject/jvynihtx.html