# learn-design-pattern **Repository Path**: fjx5762/learn-design-pattern ## Basic Information - **Project Name**: learn-design-pattern - **Description**: 学习设计模式 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-10 - **Last Updated**: 2021-07-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 设计模式 ## 设计模式的六大原则 * 单一职责原则 * 一个类只负责一个功能领域中的相应职责 * 实现高内聚、低耦合的指导方针 * 开闭原则 * 对扩展开放,对修改关闭 * 里氏替换原则LSP * 任何基类可以出现的地方,子类一定可以实现 * 在程序中尽量试用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象 * 依赖倒转原则 * 是开闭原则的基础,针对接口编程,依赖于抽象而不依赖于具体 * 高层模块不应该依赖低层模块,二者都应该依赖于抽象 * 接口隔离原则 * 客户端不应该依赖那些它不需要的接口 * 试用多个隔离的接口,比使用单个接口更好,降低类之间的耦合度 * 迪米特法则 * 最少知道原则,一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立 * 类之间的耦合度越低,越有利于复用 * 通过引入一个合理的第三者来降低现有对象之间的耦合度 ## 常见三大类 ### 创建型 * 提供了一种在创建对象的同时隐藏创建逻辑的方式,使得程序在判断对某个给定实例需要创建哪些对象 * 常见:工厂模式、抽象工厂模式、单例模式、创建者模式 * 不常见:原型模式 ### 结构型模式 * 关注类和对象的组合。继承的概念被用来组合接口和定义组合对象活得新功能的方式 * 常见:适配器模式、桥接模式、装饰器模式、代理模式 * 不常见:组合模式、外观模式、亨元模式 ### 行为模式 * 特别关注对象之间的通信 * 常见:责任链模式、迭代器模式、观察者模式、状态模式、策略模式、模板模式 * 不常见:备忘录模式、命令模式 * 几乎不用:访问者模式、中介者模式、解释器模式 ##