![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 94
橡 皮 人
代码传递思想,技术创造回响。
展开
-
23种设计模式学习导航(Java完整版)
本篇文章是作者对23种设计模式学习的一个总结,包含设计模式的三大分类(创建型5种,结构型7种,行为型11种)和七个面向对象设计原则,为了方便大家学习,现将23种设计模式的连接进行了整理,希望对大家有所帮助。ps:后续会带来设计模式的组合使用,敬请期待。原创 2023-06-04 23:02:08 · 6210 阅读 · 8 评论 -
Redis第12讲——缓存的三种设计模式
缓存的使用在项目中是极其常见的,如果使用得当,缓存可谓时提升系统性能的最简单方法之一,反之则会出现一些莫名其妙的问题,在不同场景下,所使用的缓存策略也是有所变化的,下面我们就介绍一下三种常见的缓存设计模式——Cache Aside Pattern(重点)、Read/Write Through Pattern、Write Behind Caching Pattern。原创 2024-04-11 07:30:00 · 963 阅读 · 0 评论 -
设计模式结合场景(1)——支付场景(策略+工厂+模板)
面试官:你们项目的支付场景用了哪些设计模式,为什么要这么做?一、背景 二、方案三、UML类图 四、代码实现 4.1 Payment——支付接口 4.2 Alipay、WeChatPay——支付具体策略 4.3 PaymentFactory——支付工厂4.4 PaymentTemplate——抽象模板4.5 WeChat、AlipayTemplate——具体模板4.6 test 五、总结原创 2023-07-19 07:45:00 · 995 阅读 · 0 评论 -
设计模式第22讲——访问者模式(Visitor)
访问者模式是一种行为型设计模式,它可以用于在不修改已有对象结构的情况下,定义新的操作方式。一、什么是访问者模式 二、角色组成 三、优缺点 四、 应用场景 4.1 生活场景4.2 Java场景 五、代码实现 5.0 UML类图5.1抽象访问者——Visitor5.2 具体访问者——Tourist5.3 抽象元素——Spot5.4 具体元素——View、Relic5.5 对象结构——SpotCollection5.6 testVisitor六、总结原创 2023-07-05 20:22:54 · 1546 阅读 · 3 评论 -
设计模式第21讲——状态模式(State)
状态模式是一种行为型设计模式。简单地讲就是,一个拥有状态的context对象,在不同状态下,其行为会发生改变。一、什么是状态模式 二、角色组成 三、 优缺点 四、应用场景4.1 生活场景4.2 java场景 五、代码实现5.0 UML类图5.1 State——抽象状态5.2 具体状态5.3 Machine——上下文5.4 testState 六、总结原创 2023-07-04 07:53:30 · 4693 阅读 · 1 评论 -
设计模式第20讲——备忘录模式(Memento)
备忘录模式又称快照模式,是一种行为型设计模式。一、什么是备忘录模式 二、角色组成三、优缺点 四、应用场景五、代码实现 5.0 UML类图 5.1 EditorMemento——备忘录(Memento)5.2 Editor——源发器(Originator)5.3 History——管理者(Caretaker)5.4 testMemento 六、总结原创 2023-07-02 23:49:09 · 3316 阅读 · 1 评论 -
设计模式第19讲——命令模式(Command)
命令模式(Command Pattern)是一种行为型设计模式,又叫动作模式或事务模式。一、什么是命令模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景4.2 java场景五、代码实现5.0 UML类图 5.1 抽象命令(Command)——Command5.2接收者(Receiver)——Chef5.3具体命令(Concrete Command)——OrderCommand六、总结原创 2023-06-30 08:50:22 · 8393 阅读 · 2 评论 -
设计模式第18讲——中介者模式(Mediator)
中介者模式是一种行为型设计模式,它主要用于减少对象之间互相通信的复杂性。一、什么是中介者模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景五、代码实现 5.0 UML类图 5.1抽象中介者(Mediator)——LogisticsCenter5.2抽象同事类(Colleague)——Participant5.3具体同事类(Concrete Colleague)TransportCompany&Merchant5.4具体中介者(Con原创 2023-06-29 09:09:59 · 1875 阅读 · 0 评论 -
设计模式第17讲——解释器模式(Interpreter)
一、什么是解释器模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 UML类图 5.1 Expression——抽象表达式(Abstract Expression)5.2 终结符表达式(Terminal Expression)5.3 非终结符表达式(Nonterminal Expression)5.4 InterpreterVariables——上下文(Context)5.5 testInterpreter 六、总结原创 2023-06-27 08:15:00 · 938 阅读 · 0 评论 -
设计模式第16讲——迭代器模式(Iterator)
迭代器模式是一种行为型设计模式。一、什么是迭代器模式 二、角色组成 三、 优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现5.0 UML类图 5.1 Student——学生实体类5.2 StudentIterator——抽象迭代器(Iterator)5.3 StudentListIterator——具体迭代器(Concrete iterator)5.4 StudentAggregate——抽象聚合器(Aggregate)5.5 ClassList原创 2023-06-25 22:14:32 · 6501 阅读 · 0 评论 -
设计模式第15讲——模板模式(Template)
模板模式是一种基于继承实现的设计模式,它是行为型的模式。一、什么是模板模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 UML类图5.1 OrderFood——抽象类(Abstract)5.2 具体类(Concrete Class)5.3 testTemplate六、总结原创 2023-06-25 00:47:02 · 6162 阅读 · 1 评论 -
设计模式第14讲——享元模式(Flyweight)
享元模式是一种结构型的设计模式。一、什么是享元模式 二、 角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 代码结构5.1 Bike——抽象享元类(FlyWeight)5.2 具体享元类(ConcreteFlyWeight)5.3 BikeFactory——享元工厂(FlyWeightFactory)5.4 testFlyWeight 六、总结原创 2023-06-21 23:53:02 · 6098 阅读 · 4 评论 -
设计模式第13讲——组合模式(Composite)
组合模式也成为整体部分模式,是一种结构型设计模式。一、什么是组合模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 UML类图 5.1 Expression-组件(Component)5.2 Number-叶子节点(Leaf)5.3 Operation-组合节点(Composite)5.4 testComposite六、总结原创 2023-06-20 07:45:00 · 3269 阅读 · 0 评论 -
设计模式第12讲——桥接模式(Bridge)
桥接模式是一种结构型设计模式。一、什么是桥接模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 UML类图 5.1实现部分——Bluetooth5.2 具体实现——BluetoothImpl5.3 抽象部分——Phone5.4 具体抽象六、总结原创 2023-06-17 08:15:00 · 1643 阅读 · 0 评论 -
设计模式第11讲——外观模式(Facade)
外观模式(门面模式)是一种结构型设计模式。一、什么是外观模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 UML类图 5.1 外观(Facade)——旅行社预定服务5.2 子系统(SubSystem)5.3 外观实现类5.4 TestFacade——客户端六、总结原创 2023-06-15 08:45:00 · 1609 阅读 · 1 评论 -
设计模式第10讲——建造者模式(Builder)
建造者模式是一种创建型设计模式,也叫生成器模式。一、什么是建造者模式 二、角色组成 三、优缺点 四、应用场景4.1 生活场景4.2 java场景 五、代码实现5.0 UML类图5.1 产品类(Product)5.2 抽象建造者(Builder)5.3 具体构建者(ConcreteBuilder)5.4 指导者(Director)5.5 testBuilder六、总结原创 2023-06-13 08:45:00 · 9385 阅读 · 11 评论 -
设计模式第9讲——适配器模式(Adapter)
适配器模式是一种结构型设计模式,它允许将不兼容的对象转换成可兼容的接口。主要目的是解决在不改变现有代码的情况下,使不兼容的接口之间能够正常工作,通过创建一个中间转换的适配器来将一个对象转换成我们所需要的接口。当我们去国外旅游时,我们可能只会汉语,而当地人只会英语,那么这个时候就需要一个翻译员(翻译软件)来帮助我们。这就类似于适配器模式,通过一个适配器将一个不兼容的接口转成另外一个接口。下面以翻译为例,介绍一下类、接口、对象适配器。原创 2023-06-11 17:37:27 · 15504 阅读 · 4 评论 -
设计模式第8讲——原型模式(Prototype)
原型模式属于创建型设计模式。 一、什么是原型模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现5.0 UML类图5.1 HeroSkill(英雄--具体原型类)5.2 StealManFactory(塞拉斯--客户端)5.3 TestPrototype六、总结原创 2023-06-08 07:30:00 · 3211 阅读 · 0 评论 -
设计模式第7讲——装饰者模式(Decorator)
装饰者模式是一种结构型设计模式。一、什么是装饰者模式 二、角色组成 三、优缺点 四、应用场景 4.1 应用实例 4.2 java实例 五、代码实现5.0 UML类图5.1 Hero(英雄-抽象组件)5.2 BlindMonk(盲僧-具体构件)5.3 SkillDecorator(技能装饰-抽象装饰器)5.4 QDecorator(Q技能-具体装饰器)5.5 WDecorator(W技能-具体装饰器)5.6 EDecorator(E技能-具体装饰器)5.7原创 2023-06-06 20:18:47 · 4478 阅读 · 2 评论 -
设计模式第6讲——责任链模式(Chain)
责任链模式属于行为型模式。一、什么是责任链模式 二、组成 三、优缺点 四、应用场景4.1 应用实例4.2 程序场景 五、代码实现5.0 UML类图5.1 Approver(审批者)5.2 Master(校长)5.3 GradeLeader(年级组长)5.4 ClassAdviser(班主任)5.5 LeaveRequest(请假信息)5.6TestChain5.7 总结原创 2023-06-05 20:09:20 · 2438 阅读 · 0 评论 -
设计模式第5讲——观察者模式(Observer)
观察者模式属于行为型模式。一、什么是观察者模式 二、特点 三、组成 四、应用场景4.1 生活场景4.2 程序场景 五、观察者模式实现5.0 UML类图5.1 Newspaper5.2 NewspaperImpl5.3 Subscriber5.4 SubscriberImpl5.5 测试原创 2023-06-02 08:00:00 · 11906 阅读 · 3 评论 -
设计模式第4讲——代理模式(Proxy)
代理模式属于结构型设计模式。一、什么是代理模式二、分类 三、特点 四、应用场景4.1 生活场景4.2 Java场景 五、代码实现5.0 代码结构5.1 静态代理5.2 JDK动态代理5.3 Cglib代理 六、总结原创 2023-05-31 20:45:02 · 6551 阅读 · 3 评论 -
设计模式第3讲——工厂模式(Factory)
工厂模式是一种创建型设计模式。一、什么是工厂模式 二、工厂分类 三、应用场景3.1 生活场景3.2 java场景 四、 工厂模式实现4.0 代码结构4.1 传统模式4.2 简单工厂模式4.3 方法工厂模式4.4 抽象工厂模式五、总结5.1 简单工厂模式5.2 方法工厂模式5.3 抽象工厂原创 2023-05-29 20:33:23 · 8929 阅读 · 0 评论 -
设计模式第2讲——策略模式(Strategy)
策略模式属于行为型设计模式。一、什么是策略模式 二、角色组成 三、优缺点四、应用场景 4.1 生活场景4.2 java场景五、代码实现5.0、UML类图5.1、VideoContext——环境类(Context)5.2、VideoStrategy——抽象策略类(Strategy)5.3、具体策略类(Concrete Strategy)5.4、TestStrategy原创 2023-05-25 20:56:06 · 1730 阅读 · 1 评论 -
设计模式第1讲——单例模式(Singleton)
单例模式属于创建型设计模式,是Java种最简单的设计模式之一。一、什么是单例模式 二、优缺点 三、应用场景3.1 生活场景3.2 Java场景 四、创建单例4.0 代码结构4.1 饿汉式(2种)4.2 懒汉式(4种)4.3 静态内部类4.4 枚举 五、总结原创 2023-05-24 20:30:32 · 2097 阅读 · 0 评论