学习笔记(30):第2章 架构师内功心法之设计模式 -各设计模式总结与对比(上)

立即学习:https://edu.csdn.net/course/play/28941/403587?utm_source=blogtoedu

1、七大设计原则:

1.1、开闭原则(OCP):对扩展开放,对修改关闭=》减少维护带来新风险

1.2、依赖倒置原则(DIP):高层不依赖底层,尽量依赖抽象=》利于代码结构的升级 扩展

1.3、单一职责原则(SRP):一个类只干一件事=》便于理解,提高代码可读性

1.4、接口隔离原则(ISP):一个接口只干一件事=》功能解耦,高聚合、低耦合

1.5、迪米特法则(LOD):最少知道原则,不该知道的不要知道=》减少代码臃肿

1.6、里氏替换原则(LSP):子类重写父类方法,子类功能修改不能影响父类方法含义=》防止继承泛滥

1.7、合成复用原则(CARP):尽量使用组合实现代码复用,不使用继承,例如注入=》降低代码耦合

2、设计模式:

2.1、模式分类

2.1.1、创建型:工厂方法模式 > 抽象工厂模式 > 建造者模式 > 单例模式 > 原型模式(一般都使用现成的工具类)

2.1.2、结构型:适配器模式 > 装饰器模式 > 代理模式 > 门面模式 > 组合模式 > 享元模式 > 桥接模式

2.1.3、行为型:策略模式 > 观察者模式 > 责任链模式 > 解释器模式(正则表达式) > 模板模式 > 迭代器模式 > 中介者模式 > 命令模式 > 访问者模式 > 备忘录模式 > 状态模式

2.2、模式概括

2.1、工厂模式:产品标准化,生产更高效=》目的是封装创建细节=》生活中实体工厂=》源码中 LoggerFactory、Calender

2.2、单例模式:实例唯一=》目的是保证独一无二=》生活中 CEO=》源码中 BeanFactory、Runtime

2.3、原型模式:拔一根猴毛,吹出千万个孙猴子=》高效创建对象,不经过构造方法,直接读内存=》生活中 克隆=》源码中 ArrayList、PrototypeBean

2.4、建造者模式:随意搭配=》目的是 开放个性配置步骤=》生活中 选配食材=》源码中 StringBuilder、BeanDefinitionBuilder

2.5、代理模式:没有资源没有时间,得找媒婆来帮忙=》目的是 增强职责=》 生活中类似 媒婆=》 源码中 ProxyFactoryBean、JdkDynamicAopProxy

2.6、门面模式:打开一扇门,走向全世界=>目的是统一访问入口=》生活中 前台=》jdbcUtils、RequestFacade

2.7、装饰器模式: 他大舅他二舅都是他舅=》目的是 灵活扩展、同宗同源=》生活中 煎饼 不管加了啥配菜还是煎饼=》源码中 BufferedReader、InputStream

2.8、享元模式:优化资源配置,减少重复浪费=》 目的是共享资源池=》全国社保联网=》String、Integer、ObjectPool

2.9、组合模式:人在一起叫团伙,心在一起叫团队=》目的是统一整体和个体,文件夹是由文件组成的,文件夹删掉 文件也就没了=》生活中 组织架构树=》HashMap、SqlNode

2.10、适配器模式:适合自己的才是最好的=》目的是 兼容转换=》生活中 电源适配=》源码中 AdvisorAdapter\HandlerAdapter

2.11、桥接模式:约定优于配置=》从现实连接抽象=》目的不允许用继承=》生活案例 桥=》 源码中 DriverManager

猜你喜欢

转载自blog.csdn.net/qq_28500837/article/details/112845462