![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
steamyao
github地址:https://github.com/steamyao
展开
-
设计模式-----代理模式
一简介代理是英文 Proxy 翻译过来的。我们在生活中见到过的代理,大概最常见的就是朋友圈中卖面膜的同学了。她们从厂家拿货,然后在朋友圈中宣传,然后卖给熟人。 UML图 要点:1. 用户只关心接口功能,而不在乎谁提供了功能。上图中接口是 Subject。2. 接口真正实现者是上图的 Proxied,但是它不与用户直接接触,而是通过代理。3. 代理就是上图...转载 2018-11-26 11:39:26 · 95 阅读 · 0 评论 -
设计模式------适配器模式
一 简介功能:将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适用环境:系统需要使用一些现有的类,而这些类的接口不符合系统的需要,甚至没有这些类的源代码 创建一个可以重复使用的类,用于和一些彼此之间没有太大关联的类,包括一些可能在将来引进的类一起工作 Target(目标抽象类):目标抽象类定义客户所...转载 2019-03-04 21:52:29 · 159 阅读 · 0 评论 -
设计模式---------观察者模式
一 简介定义:其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。使用场景:微信公众号服务,不定时发布一些消息,关注公众号就可以收到推送消息,取消关注就收不到推送消息。包括以下四种角色:Subject:主题类,将所有的观察者对象保存在一个List集合中,并提供增、删的方法,以及状态变化后的通知方法。 Observer:观察者的抽象接口,...原创 2019-03-05 09:44:03 · 105 阅读 · 0 评论 -
设计模式-----策略模式
一 简介定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化(实质就是算法的选择)。使用场景: 当一个系统中有许多类,它们之间的区别仅在于它们的行为,希望动态地让一个对象在许多行为中选择一种行为时; 当一个系统需要动态地在几种算法中选择一种时; 当一个对象有很多的行为,不想使用多重的条件选择语...原创 2019-03-05 10:11:14 · 96 阅读 · 0 评论 -
设计模式-------职责链模式
一 简介定义:将能够处理同一类请求的对象连成一条链,使这些对象都有机会处理请求,所提交的请求沿着链传递。从而避免请求的发送者和接受者之间的耦合关系。链上的对象逐个判断是否有能力处理该请求,如果能则就处理,如果不能,则传给链上的下一个对象。直到有一个对象处理它为止。使用场景:Java的异常机制就是一个责任链模式 打牌时,轮流出牌 接力赛跑 请假审批 公文审批包括以下角色:抽...原创 2019-03-05 10:58:46 · 115 阅读 · 0 评论 -
设计模式-----建造者模式
一 建造者模式介绍建造者模式使用的场景,产品类非常的复杂,或者产品类中的调用顺序不同产生了不同的效能,建造者模式最主要功能是基本方法的调用顺序安排,也就是这些基本方法已经实现了;而工厂方法则重点是创建,你要什么对象我创造一个对象出来,组装顺序则不是他关心的。抽象工厂模式实现对产品家族的创建,一个产品家族是这样的一系列产品:具有不同分类维度的产品组合,采用抽象工厂模式不需要关心构建过程...原创 2019-03-04 10:06:28 · 86 阅读 · 0 评论 -
设计模式------------工厂模式
一 简介工厂模式的分类:(1)简单工厂(Simple Factory)模式,又称静态工厂方法模式(Static Factory Method Pattern)。(2)工厂方法(Factory Method)模式,又称多态性工厂(Polymorphic Factory)模式或虚拟构造子(Virtual Constructor)模式;(3)抽象工厂(Abstract Factory)模...原创 2019-03-04 19:40:51 · 97 阅读 · 0 评论 -
设计模式-----单例模式
一 简介定义:一个类仅有一个实例,并提供一个访问它的全局访问点。用处:1 对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销; 2.有些对象其实我们只需要一个,比如说:线程池、缓存。多了就会出现程序异常。二 实现方法饿汉方式(线程安全) 懒汉式(非线程安全和synchronized关键字线程安全版本) 懒...转载 2018-11-26 10:17:44 · 58 阅读 · 0 评论 -
设计模式-------- 装饰者模式
一 简介用途:动态地给一个对象添加一些额外的职责。就增加功能来说, Decorator模式相比生成子类更为灵活。该模式以对客户端透明的方式扩展对象的功能。抽象构件(Component)角色:给出一个抽象接口,指定了被装饰的组件都有哪些功能。具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类,完成了基本的功能实现。装饰(Decorator)角色:持有一...原创 2019-03-04 21:05:06 · 83 阅读 · 0 评论