[学习笔记] 设计模式-1

1. 六大原则

设计模式遵循六大原则: 单一职责(一个类和一个方法只做一件事)、里氏原则(多态、子类可扩展父类)、依赖倒置(细节以来抽象、下层依赖上层)、接口隔离(建立单一接口)、迪米特原则(最少知道,降低耦合)、开闭原则(抽象架构、扩展实现).

2. 设计模式简要

类型 序号 类型 图稿 业务场景 实现要点
创建型模式 1 工厂方法 img点击并拖拽以移动img点击并拖拽以移动 多种类型商品不同接口,统一发奖服务搭建场景 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
创建型模式 2 抽象工厂 img点击并拖拽以移动img点击并拖拽以移动 替换Redis双集群升级 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
创建型模式 3 建造者 img点击并拖拽以移动img点击并拖拽以移动 各项装修物料组合套餐选配场景 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示
创建型模式 4 原型 img点击并拖拽以移动img点击并拖拽以移动 上机考试多套试题,每人题目和答案乱序排列场景 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
创建型模式 5 单例 img点击并拖拽以移动img点击并拖拽以移动 7种单例模式案例,Effective java 作者推荐枚举单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点。
结构型模式 1 适配器 img点击并拖拽以移动img点击并拖拽以移动 从多个MQ消息体中,抽取指定字段值场景 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
结构型模式 2 桥接 img点击并拖拽以移动 多支付渠道(微信、支付宝)与多支付模式(刷脸、指纹)场景 将抽象部分与实现部分分离,使它们都可以独立的变化
结构型模式 3 组合 img点击并拖拽以移动img点击并拖拽以移动 营销差异化人群发券,决策树引擎搭建场景 将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
结构型模式 4 装饰 img点击并拖拽以移动 SSO单点登陆功能扩展,增加拦截用户访问方法范围场景 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更加灵活。
结构型模式 5 外观 img点击并拖拽以移动img点击并拖拽以移动 基于SpringBoot开发门面模式中间件,统一控制接口白名单场景 为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
结构型模式 6 享元 img点击并拖拽以移动img点击并拖拽以移动 基于Redis秒杀,提供活动与库存信息查询场景 运用共享技术有效地支持大量细粒度的对象。
结构型模式 7 代理 img点击并拖拽以移动img点击并拖拽以移动 模拟mybatis-spring中定义DAO接口,使用代理类方式操作数据库原理实现场景 为其他对象提供一种代理以控制对这个对象的访问。
行为模式 1 责任链 img点击并拖拽以移动 模拟618电商大促期间,项目上线流程多级负责人审批场景 避免请求发送者与接收者耦合在一起,让多个对象都有可能接受请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。
行为模式 2 命令 img点击并拖拽以移动img点击并拖拽以移动 模拟高档餐厅八大菜系,小二单点厨师烹饪场景 将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化
行为模式 3 迭代器 img点击并拖拽以移动img点击并拖拽以移动 模拟公司组织架构树结构关系,深度迭代遍历人员信息输出场景 提供一种方法顺序访问一个聚合对象中各个元素,而又无须暴露该对象的内部表示
行为模式 4 中介者 img点击并拖拽以移动img点击并拖拽以移动 按照Mybatyis原理手写ORM框架,给JDBC方式操作数据库增加中介者场景 用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
行为模式 5 备忘录 img点击并拖拽以移动img点击并拖拽以移动 模拟互联网系统上线过程中,配置文件回滚场景 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态
行为模式 6 观察者 img点击并拖拽以移动img点击并拖拽以移动 模拟类似小客车指标摇号过程,监听消息通知用户中签场景 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新
行为模式 7 状态 img点击并拖拽以移动img点击并拖拽以移动 模拟系统营销活动,状态流程审核发布上线场景 允许对象在内部状态发生改变时改变它的行为
行为模式 8 策略 img点击并拖拽以移动img点击并拖拽以移动 模拟多种营销类型优惠券,折扣金额计算策略场景 定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换
行为模式 9 模板方法 img点击并拖拽以移动img点击并拖拽以移动 模拟爬虫各类电商商品,生成营销推广海报场景 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的机构即可重定义该算法的某些特定步骤
行为模式 10 访问者 img点击并拖拽以移动img点击并拖拽以移动 模拟家长于校长,对学生和老师的不同视角信息的访问场景 主要将数据结构于数据操作分离。

3. 参考资料

<<重学JAVA设计模式 >> 百度即可搜索到

posted @ 2022-01-18 22:22  codeTheWay  阅读(49)  评论(0)    收藏  举报