设计模式
爱去如流星
这个作者很懒,什么都没留下…
展开
-
单例模式
/** * 饿汉式 * 线程安全 * 调用效率高 * 不能延迟加载 * 空间换时间 */ class MySingleton { private MySingleton() { } private static MySingleton instance = new MySingleton(); public static MySingleton g...原创 2019-09-09 10:10:46 · 108 阅读 · 0 评论 -
装饰器模式
import org.junit.Test; /** * 装饰设计模式 * 1.动态的给一个对象添加一些额外的功能,就增加功能来说比生成个子类更灵活 * 2.在不必更改原类文件和使用继承的情况下,动态添加一个对象的功能 * 3.它就是创建一个包装对象,也就是使用装饰来包裹真实对象 * <p> * 适用性: * 1.需要扩展一个类的功能时 * 2.单不能使用子类来实现...原创 2019-09-09 10:19:23 · 101 阅读 · 0 评论 -
工厂方法模式
将动物共有属性和行为抽象为接口 public interface Animal { /** * 动物共用的特征 * 吃东西 */ void eat(); } 实体类 public class Cat implements Animal { private String name; public String getName() { ...原创 2019-09-11 12:46:56 · 58 阅读 · 0 评论 -
模板模式
/** * @author jie * @date 2019/9/10 22:09 * <p> * 模板设计模式 * 模板设计模式就是定义一个算法骨架,将具体的算法延迟到子类实现 * 优点: * 使用模板方法模式,在定义算法骨架的同时,可以很灵活的实现具体的算法,满足用户灵活多变的需求 * 缺点: * 如果算法骨架修改了的话,则需要修改抽象类 */ public c...原创 2019-09-11 13:02:25 · 82 阅读 · 0 评论 -
代理模式
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; /** * @author jie * @date 2019/9/10 21:24 * 动态代理概述 * 1.代理:本来应该自己做的事情,请了别人来做,被请的人就是代理对象...原创 2019-09-11 14:25:54 · 91 阅读 · 0 评论 -
策略模式
/** * 统一接口 */ public interface Algorithm { boolean test(Employee employee); } /** * 实现类 */ public class FilterSaleTo5000 implements Algorithm { /** * 过滤出工资大于 5000的 * @param...原创 2019-09-11 15:10:24 · 98 阅读 · 0 评论 -
适配器模式
/** * 适配器模式 * 什么是适配器: * 在使用监听器的时候,需要定义一个类事件监听器接口 * 通常接口中有多个方法,程序中不一定都要使用,但又必须重写 * 适配器简化了这些操作,定义监听器时只要继承适配器,然后重写需要的方法即可 * <p> * 适配器原理: * 1.适配器就是个类,空实现了监听器的所有接口 * 2.适配器类需要定义为抽象类,因为创建该类对象...原创 2019-09-11 17:57:59 · 73 阅读 · 0 评论