![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
程小陈
程序员小陈,输出是最好的学习方式。
展开
-
设计模式| 单一职责原则&接口隔离原则
记录学习设计模式的过程 #单一职责原则 概念 定义:不要存在多于一个导致类变更的原因 一个类、接口、方法只负责一项职责 优点:、、 案例 单一职责原则很简单,一个方法 一个类只负责一个职责,各个职责的程序改动,不影响其它程序。 这个比较容易理解,就举个一个平常会碰到的情况。 package com.dsdj.design.principle.singleresponsibility; /...原创 2018-10-11 20:29:30 · 4201 阅读 · 0 评论 -
设计模式|原型模式
概念 定义 用原型实例指定创建对象的种类,并且通过拷贝折现原型创建新的对象。 优点 性能优良 原型模式是在内存二进制流的拷贝,要比直接new一个镀锌性能好很多,特别是要在一个循环体内产生大量的对象时,原型模式可以更好地体现其优点。 逃避构造函数的约束 直接在内存中进行拷贝,是不会执行构造函数的。 缺点 必须配备克隆方法 对克隆复杂对象或者对克隆出的对象进行复杂的改造时,容...原创 2018-11-03 22:35:42 · 130 阅读 · 0 评论 -
设计模式|单例模式(1)
设计模式|单例模式(1) 概念 定义:保证一个类仅有一个实例,并提供一个全局访问点 类型:创建型 适用场景 想确保任何情况下都绝对使用同一个情况 优点 减少内存开销 避免对资源的多从占用 设置全局访问点,严格控制访问 缺点 没有接口,扩展比较难 案例 懒汉式 /** * @ClassName 懒汉式单例模式:延迟加载 * @Description TODO ...原创 2018-10-24 22:35:02 · 100 阅读 · 0 评论 -
设计模式|单例模式(3) Enum枚举单例
上篇文章已经讨论了单例模式的安全问题。而枚举类型的单例模式是实现单例模式的最好的方法 参考:《Effective Java中文版》 p14-p15 只需编写一个包含单个元素的枚举类型。 代码 枚举类 public enum EnumSingleton { INSTANCE; private Object data; public Object getData() ...原创 2018-10-31 09:06:11 · 181 阅读 · 0 评论 -
设计模式|单例模式(2) 单例模式下反序列化和反射带来的安全问题
接上篇 单例模式(1) 序列化破坏单例模式 饿汉式的单例类 public class HungarySingleton { private final static HungarySingleton hungarySingleton = new HungarySingleton(); private HungarySingleton(){ } ...原创 2018-10-28 14:24:34 · 205 阅读 · 1 评论 -
设计模式|设计原则之依赖倒置原则
设计模式|设计原则之依赖倒置原则 记录对设计模式学习的过程 前言 定义:高层模块不应以依赖低层模块,二者都应依赖其抽象 抽象不应该依赖细节;细节应该依赖抽象 针对接口编程,不要针对实现编程 优点:低耦合 、、、、等等 详细概念可以网上查询 案例实验 有一个查询数据的类SearchDao.java package com.dsdj.design.principle.depen...原创 2018-10-09 20:53:19 · 139 阅读 · 0 评论 -
设计模式|六大原则之开闭原则 实验
设计模式|六大原则之开闭原则 实验 原理 定义: 优点: 网上随便一找都有 案例演示 课程购买的例子 抽象课程 定义一个接口ICourse.java package com.dsdj.design.principle.openclose; /** * @ClassName ICourse * @Description TODO * @Author ChenLiLin * @Dat...原创 2018-10-08 23:55:49 · 314 阅读 · 0 评论 -
设计模式|简单工厂、工厂方法、抽象工厂
简单工厂 概念 定义: 由一个工厂对象决定创建出哪一种产品类的实例 类型: 创建型,但不属于GOF23种设计模式 使用场景 优点 缺点 案例一 动物的抽象类 public abstract class Animal { public abstract void eat(); } public class Cat extends Animal { publi...原创 2018-10-14 13:46:37 · 135 阅读 · 0 评论 -
设计模式|建造者模式
建造者模式 概念 定义 将一个复杂对象的构建和它的表示分离,使得同一的构建过程可以创建不同的表示 用户只需要指定需要建造的类型就可以得到他们,建造过程及细节不需要知道 类型 创建型 试用场景 如果一个对象有非常复杂的内部结构(很多属性) 想把复杂对象的创建和使用分离 优点 封装性好,创建和使用分离 扩展性好、建造类之间独立、一定程度上解耦 缺点 产生对于的builder对象 ...原创 2018-10-17 22:00:11 · 147 阅读 · 0 评论 -
设计模式-策略模式学习及案例演示
设计模式-策略模式学习及案例演示 概念 定义 定义一组算法,将每个算法都封装起来,并且使他们之间可以互换(继承和多态) 使用场景 代码中如果有大量的if…else… 系统中有很多类,而他们的区别仅仅在于他们的行为不同 一个系统需要动态地在几种算法中进行选择 类型 行为型 优点 满足了开闭原则 避免使用多重条件转移语句 提高算法的保密性和安全性 缺点 客户端必须...原创 2019-05-13 00:14:44 · 181 阅读 · 0 评论