
设计模式
文章平均质量分 73
FightFightFight
掘金:
https://juejin.cn/user/1459757308978104
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[设计模式] 工厂方法模式
概述 工厂方法模式(Factory Method Pattern),是工厂模式之一,用来管理对象的创建,并将这些行为封装在子类中,从而完成父类代码和子类对象创建代码的解耦。它定义了一个创建对象的接口(Creator),但由子类决定要实例化的是哪一个,即将类的示例化推迟到了子类。 使用场景 工厂模式最重要的用途就是解耦,通过抽象的工厂方法将子类的创建和父类进行解耦,因此适用于复杂对象的创建...原创 2018-08-26 23:28:22 · 339 阅读 · 0 评论 -
[设计模式] 单例模式
概述 单例模式,是指某个类只允许生成一个实例,这个实例由自己实例化并提供给外界一个全局访问点。 使用场景 一些比较消耗资源的类,如网络请求、线程池、缓存等,为了避免创建多个对象消耗更多的资源,需要采用单例模式。 实现方式 1.饿汉式 package com.jyq.instance; public class HeadTeacher extends Teacher {...原创 2018-08-20 23:30:54 · 263 阅读 · 0 评论 -
[设计模式] 观察者模式
定义 观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象状态改变时,他的所有的依赖者都会收到通知并自动更新。 使用场景 观察者模式是典型的发布——订阅模式,经常用于解耦来实现两个对象间的松耦合关系。 在观察者模式中,主题对象(Subject)和观察者对象(Observer)之间是一对多的关系,当主题对象的状态之间有变化,观察者就会被通知,从而完成更新。 UML类图 其UML类图...原创 2018-09-11 23:40:49 · 283 阅读 · 0 评论 -
[设计模式] 抽象工厂模式
定义 抽象工厂模式,由一个抽象工厂提供一个接口,用于创建相关或依赖对象,而不需要明确指定具体类。 使用场景 需要创建一个对象家族或者想要使创建的产品集合起来时,可以使用抽象工厂模式。 UML类图 抽象工厂模式和工厂方法模式相比,二者的共同点是都可以将对象的创建进行封装,使得程序解耦,降低对特定实现的依赖。同时,他们也有各自的特点,对于工厂方法来说,它一般通过继承实现,且常用于在具体化...原创 2018-09-06 01:08:51 · 326 阅读 · 0 评论 -
[设计模式] 装饰者模式
前言 一般来说,通过继承就可以基于父类、针对不同的行为而创建不同的子类来扩展功能。但有没有想过,如果每实现一个新行为,就一味地通过继承去搞定,久而久之,最终的代码肯定是不好维护的。同时,通过继承实现的扩展,是在编译时进行确定的。基于这两点,下面引出了装饰者模式。 定义 装饰者模式可以动态地将责任附加到对象上,相比起继承,装饰者模式更具有弹性。 使用场景 装饰者模式一般用于动态扩展类的行为,使类更加...原创 2018-09-19 23:11:12 · 329 阅读 · 0 评论 -
[设计模式] 命令模式
前言 在日常生活中,我们经常会遇到过这样的场景:去餐厅点餐时,只需要将菜单交给服务员,稍等片刻后就可以吃到想吃的食物了,整个过程中我们跟制作食物的厨师没有一丝的交流。这个场景放在程序中,可以说将客户和厨师进行了完全解耦,而这个场景的实现方式,就是本篇文章的主角——命令模式。 定义 命令模式可以将动作的请求者和动作的执行者进行解耦。它将命令(或请求)封装成对象,以便使用不同的请求、队列、或者日志来参...原创 2018-09-29 23:19:07 · 308 阅读 · 0 评论 -
[设计模式] 适配器模式
1.概述 在编程中,每个程序员都可能会遇到这样的问题:方法a()需要A类型的参数,然而我想让B类型的对象作为方法a()的参数进行传递并调用B中定义的方法,A,B两个类型完全不兼容,如何实现这个需求呢?这时就需要适配器出场了。 2.定义 适配器模式,是指将一个接口类型转化为另一个接口类型,从而可以让原本不兼容的类可以合作无间。 3.使用场景 当方法参数和现有实参类型不匹配时,需要创建适配器进行接口类...原创 2019-03-14 23:00:21 · 443 阅读 · 0 评论