摘要:
中介者模式、备忘录模式 中介者模式 交给中介者去完成需求,让原本相互调用的组件解耦 一、智能家庭项目 智能家庭项目: 1)智能家庭包括各种设备, 闹钟、咖啡机、电视机、窗帘等 2)主人要看电视时,各个设备可以协同工作,自动完成看电视的准备工作,比如流程为:闹铃响起-;咖啡机开始做咖啡-;窗帘自动落下 阅读全文
摘要:
模板模式、命令模式 模板模式 一、豆浆制作问题 编写制作豆浆的程序,说明如下: 1)制作豆浆的流程 选材—;添加配料—;浸泡—;放到豆浆机打碎 2)通过添加不同的配料,可以制作出不同口味的豆浆 3)选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的 4)请使用模板方法模式完成(说明 阅读全文
摘要:
访问者模式 访问者模式 这个模式用的很少,《设计模式》的作者评价为: 大多情况下,你不需要使用访问者模式,但是一旦需要使用它时,那就真的需要使用了 一、测评系统的需求 1)将观众分为男人和女人,对歌手进行测评,当看完某个歌手表演后,得到他们对该歌手不同的评价(评价 有不同的种类,比如 成功、失败 等 阅读全文
摘要:
解释器模式、状态模式 解释器模式 根据不同的业务场景,来对应抽象不同的元素抽象类,抽象类可能有多个子类,然后实现解释一个表达式的处理 一、四则运算问题 通过解释器模式来实现四则运算,如计算 a+b-c 的值,具体要求 1)先输入表达式的形式,比如 a+b+c-d+e, 要求表达式的字母不能重复 2) 阅读全文
摘要:
策略模式、职责链模式 策略模式 将原本继承的方式,换成组合、聚合,让算法变化(策略)与算法客户(对象)分离 一、编写鸭子项目,具体要求如下: 1)有各种鸭子(比如 野鸭、北京鸭、水鸭等, 鸭子有各种行为,比如 叫、飞行等) 2)显示鸭子的信息 二、传统方案解决鸭子问题的分析和代码实现 1)传统的设计 阅读全文
摘要:
迭代器模式、观察者模式 迭代器模式 关注数据遍历,且分离数据与迭代器,实现解耦 一、需求 编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院, 一个学院有多个系。如图: 二、传统的设计方案(类图) 三、传统的方式的问题分析 1)将学院看做是学校的子类,系 阅读全文
摘要:
代理模式、桥接模式、装饰器模式、适配器模式 创建型模式比较好理解,后面的结构型和行为型设计模式不是那么好理解。如果遇到不好理解的设计模式,我一般会在开头举比较简单的Demo案例来帮助理解。 代理模式【常用】 前面几节,我们讲了设计模式中的创建型模式。创建型模式主要解决对象的创建问题,封装复杂的创建过 阅读全文
摘要:
外观模式、组合模式、享元模式 门面模式(外观模式)【不常用】 门面模式原理和实现都特别简单,应用场景也比较明确,主要在接口设计方面使用。 如果你平时的工作涉及接口开发,不知道你有没有遇到关于接口粒度的问题呢? 为了保证接口的可复用性(或者叫通用性),我们需要将接口尽量设计得细粒度一点,职责单一一点。 阅读全文
摘要:
抽象工厂模式、工厂模式、建造者模式、原型模式 工厂模式很重要,后面的很多架构设计,都是工厂模式联合着其它设计模式使用。 一般情况下,工厂模式分为三种更加细分的类型:简单工厂、工厂方法和抽象工厂。不过,在 GoF 的《设计模式》一书中,它将简单工厂模式看作是工厂方法模式的一种特例,所以工厂模式只被分成 阅读全文
摘要:
UML类图 用于描述系统中的类==(对象)本身的组成和类(对象)==之间的各种静态关系。 类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。 类图简单举例 1、依赖关系(Dependence) 小结: 类中用到了对方 如果是类的成员属性 如果是方法的返回类型 是方法接收的参数类型 方法中使用 阅读全文
摘要:
单例设计模式 设计模式分为三种类型,共 23 种 1)创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。 2) 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 3)行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模 阅读全文
摘要:
设计模式七大原则: 设计模式常用的七大原则有: 单一职责 接口隔离 依赖倒置 里式替换 开闭原则 迪米特法则 合成复用原则 1、单一职责原则 对类来说的,即一个类应该只负责一项职责。如类 A 负责两个不同职责:职责 1,职责 2。当职责 1 需求变更而改变 A 时,可能造成职责 2 执行错误,所 阅读全文