![](https://img-blog.csdnimg.cn/b45f6a513d7c4b7787ac584fea750461.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
设计模式
放羊的牧码
学习可以偷懒,面试好好发挥就行
展开
-
设计模式 - 思想篇
利用接口如何? 把问题归零…… 针对接口编程 原创 2021-11-25 16:55:43 · 230 阅读 · 0 评论 -
设计模式 - 简单工厂(静态工厂)& 工厂方法(构建工厂)
一、创建型模式——简单工厂模式 二、创建型模式——工厂方法模式 三、迪米特原则 Ps:禁止跟陌生人(Class)交流。 四、源码下载 进入下载页面 ...原创 2018-11-12 12:15:41 · 423 阅读 · 0 评论 -
设计模式 - 单例模式(饿汉式 & 懒汉式)
创建型模式——单例模式 -目的:使得类的一个对象成为该类系统中的唯一实例。 -定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供。 优点: 1、在内存中只有一个对象,节省内存空间。 2、避免频繁的创建销毁对象,提高性能。 3、避免对共享资源的多重占用。 缺点: 1、扩展比较困难。 2、如果实例化后的对象长期不利用,系统将默认为垃圾进行回收,造成对象状态丢失。 使用场景: 1、创建对...原创 2018-11-12 12:21:01 · 291 阅读 · 0 评论 -
设计模式 - 单例模式(懒汉式 V2)
synchronized:结果正确,但是会带来性能的开销,不推荐 package com.mmall.concurrency.example.singleton; import com.mmall.concurrency.annoations.NotRecommend; import com.mmall.concurrency.annoations.ThreadSafe; /** *...原创 2020-04-14 10:47:33 · 259 阅读 · 0 评论 -
设计模式 - 单例模式(懒汉式 V4)
volatile + 双重检测机制 -> 禁止指令重排 package com.mmall.concurrency.example.singleton; import com.mmall.concurrency.annoations.ThreadSafe; /** * 懒汉模式 -> 双重同步锁单例模式 * 单例实例在第一次使用时进行创建 */ @ThreadSafe...原创 2020-04-14 10:55:13 · 261 阅读 · 0 评论 -
设计模式 - 单例模式(懒汉式 V3)
双重同步锁单例模式:在 if 语句开始这段,有可能会发生指令重排导致线程不安全 package com.mmall.concurrency.example.singleton; import com.mmall.concurrency.annoations.NotThreadSafe; /** * 懒汉模式 -> 双重同步锁单例模式 * 单例实例在第一次使用时进行创建 */...原创 2020-04-14 10:52:20 · 246 阅读 · 0 评论 -
设计模式 - 单例模式(饿汉式 V2)
饿汉式 static 初始化:线程安全 饿汉模式的另一种写法:使用静态代码块。 注意:使用静态代码段static{} 初始化单例对象时,一定要注意静态代码段的单例对象申明语句的顺序,类加载时,是顺序执行的。图中的静态变量声明一定要放在静态代码块前面。 正确代码 package com.mmall.concurrency.example.singleton; import c...原创 2020-04-14 10:59:33 · 261 阅读 · 0 评论 -
设计模式 - 装饰器模式(二)
装饰者模式定义:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更加有弹性的替代方案。 在设计的时候,往往要给一个对象的功能进行一些修饰,对功能进行拓展和增强,以满足我们的需求。 案例分析:举个例子,最近流行歌曲比赛,什么《中国好声音》,《中国好歌曲》什么的,对于一个参赛者而言,就是唱歌,定义类如下: public class Competitor { public ...转载 2018-12-01 16:26:12 · 419 阅读 · 0 评论 -
设计模式 - 单例模式(枚举式)
枚举模式:最安全 package com.mmall.concurrency.example.singleton; import com.mmall.concurrency.annoations.Recommend; import com.mmall.concurrency.annoations.ThreadSafe; /** * 枚举模式:最安全 */ @ThreadSafe @...原创 2020-04-14 11:06:41 · 295 阅读 · 5 评论 -
设计模式 - 装饰器模式(一)
结构型模式——装饰器模式 概念:将多件服饰组装好,再一次性穿上去。 代码: package com.lux.dec; public class Person { private String name; public Person() { } public Person(String name) { this.name = name; } public void s...原创 2018-11-12 12:22:42 · 296 阅读 · 0 评论 -
设计模式 - 简介
教程: Java设计模式 - 简单工厂(静态工厂)& 工厂方法(构建工厂) Java设计模式 - 单例模式(饿汉式 & 懒汉式) Java设计模式 - 装饰器模式 待更新... ...原创 2018-09-17 09:46:37 · 330 阅读 · 0 评论 -
设计模式 - 建造者模式 Lombok @Builder 实操
本文只教你怎么用Lombok来使用他的@Builder。在我的理解里,说白了,建造者就是要实现上图这样一个东西,当参数多的时候,可以明确你这个参数到底是赋给谁的。不是无休止的调用set,也不是在构造方法里写一大堆,到后来自己都不知道这值赋给的是什么参数。 反编译后,代码如下,可以看到 public class User { private final Integer code; private String username; private String passwor.转载 2021-10-13 14:07:43 · 287 阅读 · 0 评论