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