
创建型
Java 设计模式# 创建型
cauchy1217
这个作者很懒,什么都没留下…
展开
-
王争老师设计模式-工厂模式-下 如何设计实现一个Dependency Injection框架?
在上一节课我们讲到,当创建对象是一个“大工程”的时候,我们一般会选择使用工厂模式,来封装对象复杂的创建过程,将对象的创建和使用分离,让代码更加清晰。那何为“大工程”呢?上一节课中我们讲了两种情况,一种是创建过程涉及复杂的 if-else 分支判断,另一种是对象创建需要组装多个其他类对象或者需要复杂的初始化过程。今天,我们再来讲一个创建对象的“大工程”,依赖注入框架,或者叫依赖注入容器(Depe...原创 2020-04-08 14:04:43 · 501 阅读 · 0 评论 -
王争老师设计模式-工厂模式-上 我为什么说没事不要随便用工厂模式创建对象?
一般情况下,工厂模式分为三种更加细分的类型:简单工厂、工厂方法和抽象工厂。不过,在 GoF 的《设计模式》一书中,它将简单工厂模式看作是工厂方法模式的一种特例,所以工厂模式只被分成了工厂方法和抽象工厂两类。实际上,前面一种分类方法更加常见,所以,在今天的讲解中,我们沿用第一种分类方法。在这三种细分的工厂模式中,简单工厂、工厂方法原理比较简单,在实际的项目中也比较常用。而抽象工厂的原理稍微复杂点...原创 2020-04-08 11:37:18 · 316 阅读 · 0 评论 -
王争老师设计模式-单例-下 如何设计实现一个集群环境下的分布式单例模式?
如何理解单例模式中的唯一性?首先,我们重新看一下单例的定义:“一个类只允许创建唯一一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。”定义中提到,“一个类只允许创建唯一一个对象”。那对象的唯一性的作用范围是什么呢?是指线程内只允许创建一个对象,还是指进程内只允许创建一个对象?答案是后者,也就是说,单例模式创建的对象是进程唯一的。这里有点不好理解,我...原创 2020-04-08 09:21:44 · 830 阅读 · 0 评论 -
王争老师设计模式-单例-中;我为什么不推荐使用单例模式?又有何替代方案?
单例存在哪些问题?1. 单例对 OOP 特性的支持不友好我们知道,OOP 的四大特性是封装、抽象、继承、多态。单例这种设计模式对于其中的抽象、继承、多态都支持得不好。为什么这么说呢?我们还是通过 IdGenerator 这个例子来讲解。public class Order { public void create(...) { //... long id = IdGe...原创 2020-04-08 09:21:57 · 372 阅读 · 0 评论 -
王争老师设计模式-单例-上
要实现一个单例,我们需要关注的点无外乎下面几个:构造函数需要是 private 访问权限的,这样才能避免外部通过 new 创建实例; 考虑对象创建时的线程安全问题; 考虑是否支持延迟加载; 考虑 getInstance() 性能是否高(是否加锁)。1. 饿汉式 饿汉式的实现方式比较简单。在类加载的时候,instance 静态实例就已经创建并初始化好了,所以,insta...原创 2020-04-08 09:22:08 · 211 阅读 · 0 评论