AcKei
AcKei
全部文章
设计模式
题解(20)
归档
标签
去牛客网
登录
/
注册
AcKei的博客
彼此奔赴,更高处见
全部文章
/ 设计模式
(共10篇)
适配器模式
适配器模式 将某个类的接口转换成客户端期望的另一个接口表示。目的是让原本因接口不匹配不能一起工作的两个类可以协同工作。主要有三种: 类适配器 对象适配器 接口适配器 类适配器 Adapter类,通过继承 被适配的类, 实现目标类接口, 实现适配。比方说充电器,它本身相当于Adapter,2...
2020-12-14
0
565
策略模式
策略模式 指的就是能够整体地替换算法。比方说我们要实现“猜拳”程序。我们可以考虑两种策略。一是“这局获胜,那么下一句也出一样的手势”,二是“根据上一局的手势从概率上推算出下一局的手势”。 几大roles Strategy (策略) ConcreteStrategy (具体的策略) Conte...
2020-12-14
0
568
单例模式
单例模式详解 饿汉式 /** * 饿汉模式(静态变量) */ public class HungryMan { //构造器私有化 (防止 new ) private HungryMan(){} //类的内部创建对象 private final static Hu...
2020-12-07
0
575
装饰者模式
装饰者模式 假设现在有一块蛋糕,加上奶油就是奶油蛋糕,再加上巧克力就是巧克力奶油蛋糕,再要是加上水果,就是巧克力水果奶油蛋糕,当然我们也可以做水果奶油蛋糕。这就是装饰的过程。 几大roles Componet (被装饰者接口/抽象类) 就是蛋糕的API ConcreteComponent (...
2020-12-05
0
486
代理模式
代理模式 顾名思义,代理模式提供了一个“代理人”对象,当“本人”太忙时,有些工作可以交给代理人。好比如一个手机工厂,一开始它负责生产手机和卖手机,后来为了把人力充分利用到生产手机上,找了代理商来向客户卖手机。 几大roles Subject (目标接口/抽象类) RealSubject (...
2020-12-05
0
513
观察者模式
观察者模式 在该模式中,当观察对象的状态发生变化时,会通知给观察者,观察者再对变化的状态进行处理。类似你叫了一个外卖,你的订单是被观察对象,而提供给用户看的第三方(美团、饿了么)就是观察者。 该模式中几大roles Subject (被观察对象) 订单这个家伙定义了注册观察者和删除观察者的方...
2020-12-02
0
579
责任链模式
责任链模式 为请求创建了一个接收者对象的链,可以对请求的发送者和接收者进行解耦。该模式中通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,以此类推。属于行为型模式。 UML图: 举个栗子:学校OA系统的采购审批项目:需求是 1) 采购员采购...
2020-11-27
0
545
原型模式
原型模式 是指用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。 原型UML: 举个栗子:我们需要克隆羊,这里先不写接口或者抽象类,直接写具体类代表羊。 传统的克隆羊方式 会用 new Ship()方法。但在创建新对象时,总是需要重新获取原始对象的属性,如果创建得对象比较复杂...
2020-11-25
0
508
建造者模式
建造者模式 又叫生成器模式,它可以将复杂对象的建造过程抽象出来,然后把这个抽象过程个性化的任务交给子类。用户只需要指定个性化类型即可,不需要内部的具体构建细节。 它有四个roles :(1)Client (用户)(2)Builder (抽象建造者)(3)ConcreteBuilder (具体建造...
2020-11-25
0
571
详解工厂模式
工厂模式有三种模式: 简单工厂模式 能够扩展同一级别的任意产品。 工厂方法模式 不修改已有类的前提下,通过增加新的工厂类来实现扩展。 抽象工厂模式 不可以增加产品,可以增加产品族。 简单工厂 (静态工厂模式) 比方说:我们现在有个需求,实现几种口味的蛋糕并且实现对这些蛋糕的订购功能。 ...
2020-11-24
0
690