
设计模式
文章平均质量分 71
设计模式
Charge8
此随笔或为自己所写、或转载于网络。仅用于个人收集和备忘。共享:正如牛顿所说“如果我比别人看得远,那是因为我站在巨人的肩膀上”
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
软件架构设计的七大原则
软件架构设计的七大原则原创 2022-12-17 22:24:56 · 1660 阅读 · 0 评论 -
雇工设计模式
雇工设计模式原创 2022-12-16 22:12:54 · 271 阅读 · 0 评论 -
对象池模式
对象池模式原创 2022-12-16 21:48:15 · 842 阅读 · 0 评论 -
访问者模式
访问者模式原创 2022-12-13 23:33:33 · 958 阅读 · 0 评论 -
观察者模式
一、观察者模式1、观察者模式的定义观察者(Observer Pattern)模式,又叫作发布-订阅(Publish-Subscribe)模式、模型-视图模式。指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。它属于对象行为型模式。关键代码:在抽象类里有一个 ArrayList 存放观察者们。2、观察者模式的结构实现观察者模式时要注意具体目标对象和具体观察者对象之间不能直接调用,否则将使两者之间紧密耦合起来,这违反了面向对象的设计原则。(原创 2020-12-24 16:04:21 · 552 阅读 · 0 评论 -
解释器模式
解释器模式原创 2022-12-12 22:21:50 · 927 阅读 · 0 评论 -
中介者模式
中介者模式原创 2022-12-11 21:30:34 · 797 阅读 · 0 评论 -
备忘录模式
备忘录模式原创 2022-12-11 16:40:08 · 504 阅读 · 0 评论 -
状态设计模式
状态设计模式原创 2022-12-10 22:31:07 · 663 阅读 · 0 评论 -
命令设计模式
命令设计模式原创 2022-12-09 23:13:17 · 626 阅读 · 0 评论 -
迭代器模式
迭代器模式原创 2022-12-08 22:08:02 · 700 阅读 · 0 评论 -
责任链模式
责任链模式原创 2022-12-06 23:09:13 · 484 阅读 · 0 评论 -
策略模式
在现实生活中常常遇到实现某种目标存在多种策略可供选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等,超市促销可以釆用打折、送商品、送积分等方法。在软件开发中,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如数据排序策略有冒泡排序、选择排序、插入排序、二叉树排序等。如果使用多重条件转移语句实现(即硬编码),不但使条件语句变得很复杂,而且增加、删除或更换算法要修改原代码,不易维护,违背开闭原则。如果采用策略模式就能很好解决该问原创 2021-02-18 22:19:33 · 439 阅读 · 0 评论 -
模板方法模式
一、模板方法模式1、模板方法模式模板方法(Template Method)模式,又称为模板模式,定义如下:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。2、模板方法模式的结构模板方法模式需要注意抽象类与具体子类之间的协作。它用到了虚函数的多态性技术以及“不用调用我,让我来调用你”的反向控制技术。1. 模板方法模式包含以下主要角色:(1)抽象类/抽象模板(Abstract Class)抽象模原创 2020-12-09 11:11:45 · 8042 阅读 · 1 评论 -
委派设计模式
委派设计模式原创 2022-12-05 11:37:00 · 848 阅读 · 0 评论 -
桥接设计模式
桥接设计模式原创 2022-12-04 22:50:03 · 464 阅读 · 0 评论 -
适配器模式
适配器模式原创 2022-12-04 17:05:28 · 1142 阅读 · 0 评论 -
组合设计模式
组合设计模式原创 2022-12-03 22:15:42 · 452 阅读 · 0 评论 -
享元设计模式
享元设计模式原创 2022-12-03 17:50:31 · 405 阅读 · 0 评论 -
装饰器模式
在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地扩展其功能。所有这些都可以釆用装饰模式来实现。一、装饰者模式1、装饰者模式的定义装饰者模式(Decorator Pattern)的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。2、装饰者模式的结构通常情况下,扩展一个类的功能会使用继承方式来实现。但继承具有静态特征,耦合度高,并且随着扩展功能的增多,子类会很膨胀。原创 2020-12-12 21:08:13 · 7154 阅读 · 0 评论 -
门面/外观模式
门面/外观模式原创 2022-12-01 22:39:53 · 710 阅读 · 0 评论 -
设计模式 - 代理模式
什么是代理模式? 代理模式是指给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用,来达到控制对这个类的访问。通俗的来讲代理模式就是我们生活中常见的中介。按照代理创建的时期可以分为两种:静态代理、动态代理。 客户端直接使用的都是代理对象,不知道真实对象是谁,此时代理对象可以在客户端和真实对象之间起到中介的作用。 代理对象完全包含真实对象,客...原创 2019-11-02 16:18:05 · 302 阅读 · 0 评论 -
原型设计模式
原型设计模式原创 2022-11-29 22:26:27 · 461 阅读 · 0 评论 -
建造者模式
一、建造者模式1、建造者模式定义建造者模式(Builder Pattern)的定义:指将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示,属于创建型设计模式。2、建造者模式的结构(1)模式的结构主要角色如下。产品(Product):需要创建的产品类对象,它是包含多个组成部分的复杂对象,由具体建造者来创建其各个组成部分。抽象建造者(Builder):它是一个包含创建产品各个子部件的抽象方法的接口,通常还包含一个返回复杂产品的 getResult()方法或者buil原创 2021-03-21 20:42:11 · 378 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。一、抽象工厂模式抽象工厂模式将考虑多等级产品的生产,将同一个具体工厂所生产的位于不同等级的一组产品称为一个产品族。1、抽象工厂模式的定义抽象工厂(AbstractFactory)模式 的定义:是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。使用抽象工厂模式一般要满足以下条件。系统中有多个产品族,每个具体原创 2020-12-21 11:56:24 · 831 阅读 · 0 评论 -
工厂方法模式
工厂方法模式是对简单工厂模式的进一步抽象化和推广,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。一、工厂方法模式1、工厂方法模式的定义工厂方法模式(Factory Method Pattern),又叫作多态性工厂模式。指定义一个创建对象的接口,让子类决定实例化哪一个类,工厂方法把一个类的实例化推迟到其子类中进行。工厂方法模式解决了简单工厂生产太多产品导致其内容代码臃肿(if条件太多)的问题,也符合开闭原则。2、工厂方法模式的结构(1)模式的结构工厂方法模式的主要原创 2020-12-19 11:32:54 · 751 阅读 · 1 评论 -
简单工厂模式
在日常开发中,凡是需要生成复杂对象的地方,都可以尝试考虑使用工厂模式来代替。复杂对象指的是类的构造函数参数过多等对类的构造有影响的情况,因为类的构造过于复杂,如果直接在其他业务类内使用,则两者的耦合过重,后续业务更改,就需要在任何引用该类的源代码内进行更改,光是查找所有依赖就很消耗时间了,更别说要一个一个修改了。工厂模式的定义:是指定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。按实际业务场景划分,工厂模式原创 2020-12-14 21:51:16 · 5183 阅读 · 0 评论 -
设计模式 - 单例模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。一、什么是单例模式(Singleton Pattern)...原创 2019-07-30 11:04:04 · 256 阅读 · 0 评论