
设计模式
Kyle Zeng
这个作者很懒,什么都没留下…
展开
-
代理设计模式
代理模式静态代理动态代理JDK动态代理CGLIB动态代理代理模式属于结构型模式。适用于需要对目标对象做功能增强 或者 需要保护目标对象的场景。包括静态代理和动态代理静态代理静态代理通常是新增一个代理类,持有目标对象的引用,代理类在编码阶段就写好了,通常只对持有的对象做代理。public interface IObject { public void query();}public class OneObject implements IObject{ @Override public vo原创 2021-12-29 17:52:38 · 203 阅读 · 0 评论 -
建造者设计模式
建造者模式建造者模式属于创建型模式。适用于对象的创建过程复杂多样,构造步骤需要交给用户去自定义的情况。更加注重创建过程的灵活性,常与链式编程一起使用。对象:/** * 对象中有构造方法可能多种多样,建造出来的对象不尽相同时, * 可以采用新增一个建造者来定义构造过程,并将构造步骤交给用户去自定义 */public class OneObject { private String a; private String b; /** * 构造方法多种多样:原创 2021-12-29 11:01:55 · 178 阅读 · 0 评论 -
原型设计模式
原型模式浅克隆深克隆原型模式属于创建型模式,适用于对象的创建过程比较复杂或者需要循环创建大量复杂对象的情况。包括【浅克隆】和【深克隆】两种概念。由于原型模式可以直接复制内存地址,所以比new或构造方法创建对象更高效。浅克隆浅克隆是指创建的目标对象拷贝原型对象的程度相对较浅。主要体现在其只实际拷贝了基本数据类型、String 以及 引用对象的引用地址,并没有拷贝引用对象的地址值数据。/** * 浅拷贝 * Object实现了Cloneable,可以通过clone方法实现浅拷贝 */publi原创 2021-12-28 16:25:04 · 124 阅读 · 1 评论 -
单例设计模式
单例模式饿汉式单例懒汉式单例容器式单例枚举式单例注册式单例线程隔离式单例单例模式属于创建型模式,用于在系统运行过程中保证只有一个实例。创建单例面临的问题有:反射破坏单例,多线程并发破坏、序列化破坏单例饿汉式单例/** * 懒汉式单例 * 已解决反射破坏、序列化问题 * 类加载时就创建了单例,不存在线程安全问题 */public class HungrySingleton { // 类加载时就初始化 private static HungrySingleton hungryS原创 2021-12-28 11:46:38 · 556 阅读 · 1 评论 -
工厂设计模式
GoF 23种设计模式中的工厂模式。分为简单工厂模式、工厂方法模式、抽像工厂模式。简单工厂模式简单工厂模式是将对象的生成封装到一个工厂类中。在工厂类总根据入参创建对应的对象。比如:public interface IObject() {}public class OneObject implements IObject() {}public class TwoObject implements IObject() {}public class Factory { public IObje原创 2021-12-27 12:45:12 · 206 阅读 · 0 评论