![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
_努力努力再努力_
如果你吃不了学习的苦,那就只能吃生活的苦
展开
-
设计模式:初学建造者模式
建造者模式的适用范围:1、需要生成的产品对象有复杂的内部结构,而且这些对象具备共性举例:比如房子要装修,总共要装修的有厨房,客厅,厕所,窗户等,这些就是复杂的内部结构,具备共性的意思是,我可以只装修厨房和窗户,其他不装修,这是一个排列组合问题,如果使用构造器的话,就会产生大量的代码冗余,于是使用建造者模式2、隔离复杂对象的创建和使用,并使得相同的创建过程可以创建不同的产品通过.build 方法创建想要创建的东西建造者模式的优点:1、易与解耦将产品本身与产品创建过程进行解耦,可以使用相同的创建原创 2021-09-24 18:23:50 · 60 阅读 · 0 评论 -
工厂模式:简单工厂——方法工厂——抽象工厂
简单工厂:package demo12;import demo05.Person;/** * @Classname HelloFactory * @Description * @Date 2021/9/24 15:09 * @Created by thx */public class HelloFactory { public static void main(String[] args) { new SimpleFactory().createCar("BMW原创 2021-09-24 15:24:12 · 63 阅读 · 0 评论 -
懒汉模式在多线程中的问题
由上一篇,了解到懒汉以及饿汉模式,目的是1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。但是,在多线程的情况下,会出现一些问题,如下代码,创建懒汉模式,但是通过同时 new 了两个线程来创建,此时两个线程一起走,但是创建需要延迟 2s 秒钟,所以创建的时候,判断 instance 都是 null,也就是说,两个线程创建了两个不同的对象,如图:package demo11;/** * @Classname LazyMode * @原创 2021-09-24 14:54:56 · 383 阅读 · 0 评论 -
设计模式:单例模式——饿汉懒汉
饿汉模式首先看一下饿汉模式,当类加载的时候创建新对象创建两个医院对象,第一次创建,走构造器,需要两秒创建时间,第二次创建,直接返回创建好的对象// 饿汉模式:类加载的时候创建新对象 Hospital hospital1 = Hospital.getInstance(); Hospital hospital2 = Hospital.getInstance(); System.out.println(hospital2 == hospital1原创 2021-09-23 17:37:10 · 88 阅读 · 0 评论