![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
灬奔跑的蜗牛灬
这个作者很懒,什么都没留下…
展开
-
原型模式(prototype)
原型模式:通过new产生一个对象需要非常繁琐的数据准备或者访问权限,则可以使用原型模式。以摸个对象为原型,复制出新的对象,新对象具有原型对象的特点。优势:效率高(直接克隆,避免了重新执行构造过程步骤)克隆类似于new 但是不同于new .new 创建新的对象属性采用的是默认值,克隆出的对象属性值完全和原型对象相同,并且克隆出的新对象改变不会影响原型对象,然后再修改克隆对象的值。原型模...原创 2018-11-07 11:08:44 · 125 阅读 · 0 评论 -
观察者模式(Observer)
广播机制的场景可以把多个订阅者,客户称之为观察者,需要同步给多个订阅者的数据封装到对象中,称之为目标。开发中常见的场景:聊天室程序的,服务器转发给所有的客户端网络游戏(多人联机对战)场景中,服务器将客户端的状态进行分发邮件订阅Servlet中,监听器的实现Android中,广播机制JDK的AWT 中事件处理模式基于观察者模式的胃癌事件模型(Delegation Event Mo...原创 2018-11-06 23:07:28 · 158 阅读 · 0 评论 -
策略模式(strategy)
场景:某市场人员接单后的报价策略(CRM系统中常见的问题)普通客户小批量报价普通客户大批量报价老客户小批量报价、老客户大批量报价报价策略根据具体的情况来确定,及采用策略模式。报价策略根据具体的情况来确定,及采用策略模式。本质:分离算法,选择实现常见开发场景JAVASE中GUI编程中的布局管理。Spring 框架中,Resource接口,资源访问策略。javax.ser...原创 2018-11-06 22:17:27 · 126 阅读 · 0 评论 -
装饰模式(Decorator)
装饰模式 Decorator :职责:动态给一个对象增加新的功能。装饰模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。实现细节:----Component抽象构件角色:真实对象和装饰对象有相同的接口,这样,客户端对象就能够以真实对象相同的方式同装饰对象交互。----ConcreteCompon...原创 2018-11-06 21:44:31 · 145 阅读 · 0 评论 -
GOF23种设计模式
代理模式(Proxy pattern)核心作用:通过代理,控制对对象的访问,可以详细控制访问某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。AOP(Aspect Oriented Programming面向切面编程)的核心实现机制。核心角色:**抽象角色:**定义代理角色和真实角色的公共对外方法。**真实角色:**实现抽象角色,定义真实角色所要实现的业务...原创 2018-11-02 00:18:49 · 99 阅读 · 0 评论 -
外观模式(Facade)
外观模式外观模式是为了解决类与类之间的依赖关系,外观模式将依赖关系放到一个Facade 类中,降低类与类之间的耦合度。实现类public class Facade{ public static void main(String[] args) { Computer computer = new Computer(); computer.sta...翻译 2019-07-14 22:04:50 · 104 阅读 · 0 评论 -
责任链模式(Chain of Responsibility)
责任链模式(Chain of Responsibility)谈责任链模式,有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求,所以,责任链模式可以实现,在隐瞒客户端的情况下,对系统进行动态的调整。Abstracthandler 类提供了 get 和 set 方法,方便 MyHand...翻译 2019-07-14 22:18:19 · 105 阅读 · 0 评论 -
单例模式---双重检测锁实现
饿汉模式:饿汉式(线程安全,调用效率高。 但是,不能延时加载。)属于类线程安全,所以不需要关键字 :synchonrized/** * 饿汉式 * @author Administrator * */public class SignOne { private static SignOne instance = new SignOne(); public stati...原创 2019-07-05 22:08:45 · 209 阅读 · 0 评论