Java中单例与原型模式有何区别与联系?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2266个文字,预计阅读时间需要10分钟。
今天这篇文章,我们来学习创建型设计模式的其他两个兄弟:单例和原型。其中,原型设计模式中,我们深入到JVM的内存模型,最后顺便谈谈Java中的值传递和引用传递。
今天这篇文章我们来学习创建型设计模式的另外两个孪生兄弟,单例和原型,其中原型设计模式中我们深入到JVM的内存模型,最后顺便谈谈Java中的值传递和引用传递。
上篇文章老王买产品我们从最原始的基本实现方法,到简单(静态)工厂,然后使用工厂方法设计模式进行改造,最后考虑产品会产生变体,我们又扩展到了抽象工厂。
设计模式所有的相关代码均已上传到码云读者可以自行下载学习测试,本地源码下载。
一、引出问题
今天老王又来了,还是想买我们的产品,今天老王上老就提出来一个要求,当他购买产品的时候,每次都要从货架上给他拿相同的一个。
如果用传统实现方式,当老王拿到产品以后,直接和上一个比对一下就行了,如果不一致老王就还回来。
但通过我们查阅软件的七大设计原则,这很明显违反了依赖倒置原则,为了避免耦合和让代码更易于维护,老王是不能依赖具体产品的。
二、单例
我们就需要将产品比对在创建产品的时候进行判断,老王就只管拿。
老王来之前应该还有两种情况,一种就是老王还没来,产品就准备好了,也即饿汉式。第二种就是老王什么时候来,什么时候给他准备产品,也即懒汉式。
本文共计2266个文字,预计阅读时间需要10分钟。
今天这篇文章,我们来学习创建型设计模式的其他两个兄弟:单例和原型。其中,原型设计模式中,我们深入到JVM的内存模型,最后顺便谈谈Java中的值传递和引用传递。
今天这篇文章我们来学习创建型设计模式的另外两个孪生兄弟,单例和原型,其中原型设计模式中我们深入到JVM的内存模型,最后顺便谈谈Java中的值传递和引用传递。
上篇文章老王买产品我们从最原始的基本实现方法,到简单(静态)工厂,然后使用工厂方法设计模式进行改造,最后考虑产品会产生变体,我们又扩展到了抽象工厂。
设计模式所有的相关代码均已上传到码云读者可以自行下载学习测试,本地源码下载。
一、引出问题
今天老王又来了,还是想买我们的产品,今天老王上老就提出来一个要求,当他购买产品的时候,每次都要从货架上给他拿相同的一个。
如果用传统实现方式,当老王拿到产品以后,直接和上一个比对一下就行了,如果不一致老王就还回来。
但通过我们查阅软件的七大设计原则,这很明显违反了依赖倒置原则,为了避免耦合和让代码更易于维护,老王是不能依赖具体产品的。
二、单例
我们就需要将产品比对在创建产品的时候进行判断,老王就只管拿。
老王来之前应该还有两种情况,一种就是老王还没来,产品就准备好了,也即饿汉式。第二种就是老王什么时候来,什么时候给他准备产品,也即懒汉式。

