![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
云养猫v2
这个作者很懒,什么都没留下…
展开
-
单例模式
简介 这一模式的目的是使得类的一个对象成为系统中的唯一实例。 -要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对象类的唯一实例的机制,“阻止”所有想要生成对象的访问。使用工厂方法来限制实例化过程。 这个方法应该是静态方法(类方法),因为让类的实例去生成另一个唯一实例毫无意义。 一是某个类只能有一个实例; 二是它必须自行创建这个实例; 三是它必须自行向整个系统提供这个实例。 饱汉型: pubic class Singleton { private static Sing原创 2020-09-02 16:06:30 · 83 阅读 · 0 评论 -
装饰者模式
装饰模式的优缺点 装饰模式的优点: 装饰模式与继承关系的目的都是要扩展对象的功能,但是装饰模式可以提供比继承更多的灵活性。 可以通过一种动态的方式来扩展一个对象的功能,通过配置文件可以在运行时选择不同的装饰器,从而实现不同的行为。 通过使用不同的具体装饰类以及这些装饰类的排列组合,可以创造出很多不同行为的组合。可以使用多个具体装饰类来装饰同一对象,得到功能更为强大的对象。 具体构件类与具体装饰类...原创 2020-03-18 14:25:16 · 71 阅读 · 0 评论 -
责任链模式
定义 创建多个对象,使这些对象形成一条链,并沿着这条链传递请求,直到链上的某一个对象决定处理此请求。 特点 接收请求的对象连接成一条链,对象之间存在层级关系。 这些对象可处理请求,也可传递请求,直到有对象处理该请求。 UML 责任链模式涉及到的角色如下所示: 抽象处理者角色:定义了处理请求的接口或者抽象类,提供了处理请求的的方法和设置下一个处理者的方法。 具体处理者角色:实现...原创 2020-03-18 14:12:44 · 66 阅读 · 0 评论 -
JDK动态代理原理
给目标对象提供一个代理对象,并由代理对象控制对目标对象的引用。 假设我们想请明星来唱歌,我们是先联系他的经纪人,在经纪人告诉明星,然后明星唱歌。其中经纪人就是代理。 静态代理与动态代理的区别: 静态代理中的代理类是需要用户自己写的,这样代理类在程序运行前就已经存在了。 动态代理中的代理类是在程序运行中自动生成的。 //静态代理 //接口 public interface Fru...原创 2019-03-18 12:05:31 · 2240 阅读 · 0 评论