摘要: 定义: 定义对象之间的一种一对多的依赖关系,使得每当一个对象的状态发生变化时,其相关的依赖对象都可以得到通知并被自动更新。 模式主要用于多个不同的对象对一个对象的某个方法会做出不同的反应! 比如猫叫之后狗会叫老鼠会逃跑,这时候猫就是被观察者,老鼠和狗都是观察者。 角色: 抽象目标:这是被观察的对象( 阅读全文
posted @ 2021-11-30 23:16 靠谱杨 阅读(859) 评论(0) 推荐(0)
摘要: 定义: 将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化。 本质上是对命令进行封装,将发出命令的责任和执行命令的责任分隔开。 角色: 接收者类:实现了具体的业务操作,拿电视机来说,这个类实现了电视机的开启和关闭的真实操作方法。 抽象命令类:定义了一个执行命令的方法接口,由其子类实现 阅读全文
posted @ 2021-11-30 23:15 靠谱杨 阅读(781) 评论(0) 推荐(0)
摘要: **定义:**避免请求的发送者和接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,沿着这条链传递请求,直到有对象处理它为止。 角色: 抽象处理者:Handler 具体处理者:ConcreteHandler 客户类:Client 模式分析: 关键在于抽象处理者类的设计:很多对象由每 阅读全文
posted @ 2021-11-30 23:15 靠谱杨 阅读(55) 评论(0) 推荐(0)
摘要: **定义:** 给某个对象提供一个代理,并由代理对象控制对原对象的引用。 **角色:** - 抽象主题角色:里面包含了抽象的业务操作。- 代理主题角色:实现抽象主题接口,关联真实主题角色,对真实主题角色的一些业务进行一些预先处理和延后处理。- 真实主题角色:里面包含的真实的业务需求,客户端调用的时只 阅读全文
posted @ 2021-11-30 23:14 靠谱杨 阅读(367) 评论(0) 推荐(0)
摘要: **定义:**外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统的一组接口提供 了一个一致的界面。 **实例:**一个电源总开关可以控制四盏灯、一个风扇、一台空调和一个电视机的启动和关闭。 核心理解 外观模式做的事情是这样的: 比如说你现在想把家里的灯关了、把空调关了、把电视机也关了。正 阅读全文
posted @ 2021-11-30 23:13 靠谱杨 阅读(516) 评论(0) 推荐(0)
摘要: 定义:动态地给一个对象增加一些额外的职责。 角色: 抽象构件:Component 具体构件:ConcreteComponent 抽象装饰类:Decorator 具体装饰类:ConcreteDecorator 模式分析: 具体构件类和抽象构件类都实现了抽象构件接口,模式的关键在于抽象装饰类,这个类实现 阅读全文
posted @ 2021-11-30 23:13 靠谱杨 阅读(329) 评论(0) 推荐(0)
摘要: 核心理解 桥接模式做了这样一件事情: 就像图中所示:如果想要一个联想的台式电脑,那么就需要两层继承来拿到这个对象(类),第一这是低效率的,第二这是一种静态的定死的方式,扩展性很差。桥接模式的思想是把抽象化和实现化进行解耦分离,比如说**无论有多少个品牌,抽象来看它们都只是品牌,无论有多少种电脑,它们 阅读全文
posted @ 2021-11-30 23:12 靠谱杨 阅读(1228) 评论(0) 推荐(0)
摘要: 3.3 单例模式(Singleton) 注意点: 静态私有成员变量。 私有构造函数。 静态公有工厂方法,返回唯一对象实例,方法中判断对象是否为空,如果为空则new一个新对象返回,俄国不为空,则直接将私有成员变量对象返回。 package com.a007; public class StuNo { 阅读全文
posted @ 2021-11-30 23:10 靠谱杨 阅读(236) 评论(0) 推荐(0)
摘要: 3.4 适配器模式(Adapter) 用途:将一个类的接口转换成客户希望的另一个类的接口。 **例子:**电脑网线USB转接器 角色: 电脑(客户端)、网线、转接器、目标接口NetToUsb 目标接口或抽象类(目标抽象类或目标抽象接口):这里例子中就是目标接口USB。 适配者类(需要适配的类 Ada 阅读全文
posted @ 2021-11-30 23:10 靠谱杨 阅读(821) 评论(0) 推荐(0)
摘要: 3.1 建造者模式(Builder) 例子:根据计算机组件组装不同的计算机。 用这个例子来理解一下创建者模式:首先这个模式做的事情是这样的,现在有一堆计算机零件,比如说一块硬盘它可以放在笔记本电脑上也可以放在台式机上,那么建造者模式就是把不同电脑的构建和表示分离,提供一个计算机产品类,里面包含了计算 阅读全文
posted @ 2021-11-30 23:09 靠谱杨 阅读(1259) 评论(0) 推荐(0)
摘要: 3.2 原型模式(ProtoType) 具体角色: ProtoType抽象原型类 ConcreteProtoType具体原型类 步骤: 实现一个接口:Cloneable 重写一个方法:clone pubilc Object clone() object = super.clone() ; retur 阅读全文
posted @ 2021-11-30 23:09 靠谱杨 阅读(459) 评论(0) 推荐(0)
摘要: 2. 初识设计模式 2.1 设计模式定义 设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码,让代码更容易被他人理解、保证代码的可靠性。 2.2 设计模式基本要素 模式名称、问题、目的、解决方案、效果、实例代码和相 阅读全文
posted @ 2021-11-30 23:08 靠谱杨 阅读(1007) 评论(0) 推荐(1)
摘要: 1. 面向对象设计原则 1.1 可维护性较低的软件设计 过于僵硬 过于脆弱 复用率低 黏度过高 1.2 一个好的系统设计 可扩展性 灵活性 可插入性 复用:一个软件的组成部分可以在同一个项目的不同地方甚至在不同的项目重复使用。 面向对象设计复用的目标:实现支持可维护性的复用。(抽象、继承、封装、多态 阅读全文
posted @ 2021-11-30 23:07 靠谱杨 阅读(206) 评论(0) 推荐(0)
摘要: 设计模式复习 1. 面向对象设计原则 每种设计模式我都对应写了一份代码实现示例,在这个项目里,需要的朋友自取: https://github.com/SAH01/GOF-software-design-pattern-demo 1.1 可维护性较低的软件设计 过于僵硬 过于脆弱 复用率低 黏度过高 阅读全文
posted @ 2021-11-30 23:06 靠谱杨 阅读(1313) 评论(0) 推荐(1)