设计模式
傅华涛Fu
热爱代码,热爱技术。
展开
-
设计模式的原则
单一原则:一个类只做一件事情,要遵从高内聚、低耦合。开闭原则:对修改关闭,对扩展开放。里氏替换原则:在基类可以出现的地方,子类也一定可以出现。依赖倒转原则:针对接口编程,依赖与抽象而不依赖与具体。接口隔离原则:使用多个隔离的接口,比使用单个接口要好。这样能体现低耦合。迪米特法则:一个实体尽量少地与其他实体发生关联,使各个系统模块之间相对独立。合成复用原则:尽量使用合成/聚合,尽量少使用继承。...原创 2021-08-25 16:18:28 · 60 阅读 · 0 评论 -
设计模式——中介者模式
1.中介者模式概述中介者模式:用一个中介对象(中介者)来封装一系列的对象交互,中介者使各个对象不需要显式地相互作用,从而使其耦合松散,而且可以独立地改变他们之间的交互,中介者模式又称为调停者模式,它是一种对象行为模式。中介者模式是迪米特法则的典型应用。2.中介者模式的结构图 Mediator:抽象中介者,该接口或抽象类用于与各个同事对象之间进行通信。ConcreteM...原创 2018-12-06 11:21:50 · 89 阅读 · 0 评论 -
设计模式——模板方法模式
1.模板方法模式概述模板方法模式:定义一个 操作中算法的框架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式是一种类行为模式。2.模板方法模式的结构图AbstractClass:抽象类:在抽象类中定义了一系列基本操作Primitive Operation,这些基本操作可以是具体的,也可以是抽象的,每一个基本操作对应算法...原创 2018-12-06 10:43:32 · 175 阅读 · 0 评论 -
设计模式——迭代器模式
1.迭代器模式的定义迭代器模式,即提供一种方法来访问聚合对象,而不用暴露这个聚合对象的内部表示。迭代器模式是一种对象行为型模式。2.迭代器模式的结构图...原创 2018-12-09 09:32:10 · 110 阅读 · 0 评论 -
设计模式——职责链模式
1.职责链模式的定义职责链模式,即避免请求发送者和请求接受者耦合在一起,让多个对象都有可能接收请求,让这些对象连成一条链,并沿着这条链一直传递下去,直到有对象接收该请求。职责链模式是一种对象行为性模式。2.职责链的结构图 ...原创 2018-12-09 09:32:20 · 121 阅读 · 0 评论 -
设计模式——代理模式
1.代理模式的概述为真实对象提供一个代理,由代理对象控制对真实对象的访问。2.代理模式的结构图原创 2018-12-08 20:13:34 · 110 阅读 · 1 评论 -
设计模式——装饰模式
1.装饰模式的定义装饰模式:动态地给对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更加灵活。装饰模式是一种对象结构型模式。2.装饰模式的结构图...原创 2018-12-08 20:02:15 · 92 阅读 · 0 评论 -
框架与设计模式的区别
很多时候,我们都分不清框架和设计模式到底有什么区别,下面是这两者的简单的区别介绍:1.设计模式和框架所针对的领域不同: 设计模式针对面向对象的问题域,框架针对特定业务的问题域。2.设计模式比框架更为抽象: 设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它在碰到具体问题后才能产生代码,只有模式实例才能用代码表示;框架本身已经可以用代码表示,能直接执行和...原创 2018-12-08 17:25:12 · 2515 阅读 · 0 评论 -
设计模式——命令模式
1.命令模式的定义命令模式:将一个请求封装为一个对象,从而可让我们用不同的请求对客户进行参数化。命令模式将请求发送者和请求接收者完全解耦,发送者和接受者之间没有直接引用关系,发送请求的对象只要知道如何发送请求,而不必知道请求是如何完成的。2.命令模式的结构图...原创 2018-12-08 17:09:52 · 140 阅读 · 0 评论 -
设计模式——外观模式
1.外观模式的定义外观模式:为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。2.外观模式的结构图...原创 2018-12-08 16:19:41 · 101 阅读 · 0 评论 -
设计模式——组合模式
1.组合模式的定义组合模式:组合多个对象成树型结构以表示具有部分-整体关系的层次结构。组合模式可以让客户统一对待单个对象和组合对象。2.组合模式的结构图...原创 2018-12-08 15:27:49 · 110 阅读 · 0 评论 -
设计模式——适配器模式
1.适配器模式的定义 适配器模式是将一个类的接口转换成客户希望的另一个接口,适配器模式让那些接口不兼容的类可以在一起工作。2.适配器模式 的结构图...原创 2018-12-08 15:12:33 · 91 阅读 · 0 评论 -
设计模式——桥接模式
1.桥接模式的定义桥接模式将抽象部分和实现部分解耦,使得两者都能够独立变化。2.桥接模式的结构图3.案例分析在某图形绘制软件中,提供了多种不同的类型的图形,例如圆形、三角形、长方形等,并为每种图形提供了多种样式,例如平面图形、立体图形等。该软件需要经常增加新的图形及样式,现采用桥接模式设计该案例。类图设计如下:...原创 2018-12-08 14:49:38 · 1055 阅读 · 0 评论 -
设计模式——观察者模式
1.观察者模式概述定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象都得到通知并被自动更新。2.观察者模式结构图...原创 2018-12-08 14:28:10 · 101 阅读 · 0 评论 -
设计模式——策略模式
1.策略模式概述定义一系列算法,将每一个算法封装起来,并让他们可以相互替换。策略模式让算法可以独立于使用它的客户端而变化。2.策略模式结构图3.策略模式案例设计问题:某公司经常进行促销活动,根据不同的条件,如订单数量、商品数量、产品种类等,公司可以提供百分比折扣或现金减免等多种促销方式供用户选择。实现每种促销活动的代码量很大,且会随促销方式不同经常修改,系统设计中需要考虑现有的...原创 2018-12-08 14:06:56 · 149 阅读 · 0 评论 -
设计模式——工厂方法模式
1.工厂方法模式概述 定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。 工厂方法模式简称为工厂模式,又可称为虚拟构造模式或多态工厂模式。工厂方法模式是一种类创建型模式。 2.工厂方法模式的结构图Product:抽象产品,它是定义产品的接口,是工厂方法模式所创建对象的超类型,也就是产品对象的公共父类。Concre...原创 2018-12-05 12:44:24 · 125 阅读 · 0 评论 -
设计模式——简单工厂模式
简单工厂模式: 定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态方法,因此简单工厂模式又被称为静态工厂方法模式,它属于类创建型模式。1.简单工厂模式结构图Product:抽象产品角色:是工厂类所创建的所有对象的父类。ConcreteProduct:具体产品角色:是简单工厂模式的创建目标,所...原创 2018-12-04 21:26:00 · 118 阅读 · 0 评论 -
设计模式——单例模式
1.单例模式结构图2.饿汉式单例模式结构图3.懒汉式单例模式结构图4.一种更好的单例实现方法 饿汉式单例类不能实现延迟加载,不管将来用不用,他始终占据内存;懒汉式单例类线程安全控制繁琐,而且性能受影响。可见,无论饿汉式单例还是懒汉式单例都存在问题。有一种技术可以克服这两者的缺点,并且可以将两者的优点合二为一,就是Initialization on Deman...原创 2018-12-04 20:58:53 · 181 阅读 · 0 评论