# design-mode **Repository Path**: idream68/design-mode ## Basic Information - **Project Name**: design-mode - **Description**: 设计模式(java) - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-24 - **Last Updated**: 2022-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: 设计模式, Design ## README # 设计模式 ### 设计原则 1. 单一职责原则 - 有且仅有一个原则引起类的变更 (职责) 2. 里氏替换原则 - 定义:所有引用基类的地方必须能透明地使用子类的对象 - 优点: - 代码共享 - 提高代码重用行 - 提高代码扩展性 - 提高产品或项目的开放性 - 缺点: - 继承是入侵的 - 降低代码的灵活性 - 增强耦合性 3. 依赖倒置原则 - 模块间的依赖通过接口或抽象类发生,实现类之间不发生直接的依赖关系,其依赖关系都是通过接口或抽象类产生的 - 接口或抽象类不依赖与实现类 - 实现类依赖接口或抽象类 4. 接口隔离原则 - 接口尽量细化(业务逻辑) 5. 迪米特法则(最少知识原则) - 一个对象对其他对象应该进可能少的了解 6. 开闭原则 - 软件实体对扩展开放 - 对修改关闭 - 一个软件应该通过扩展来实现变化,而不是通过修改已有的代码类实现变化 - 软件实体:1. 按照一定逻辑划分的模块 2. 抽象和类 3. 方法 **设计原则:主要为了高内聚,低耦合而努力,最终实现```OCP```** --- ### 设计模式 #### 创建型 1. [单例模式](./src/main/java/com/study/design/mode/singleton) 2. [原型模式](./src/main/java/com/study/design/mode/prototype) 3. [工厂模式](./src/main/java/com/study/design/mode/factory) 4. [建造者模式](./src/main/java/com/study/design/mode/builder) #### 结构型 5. [代理模式](./src/main/java/com/study/design/mode/proxy) 6. [门面模式](./facade-pattern) 7. [装饰模式](./decorator-pattern) 8. [享元模式](./flyweight-pattern) 9. [组合模式](./composite-pattern) 10. [适配器模式](./adapter-pattern) 11. [桥接模式](./bridge-pattern) #### 行为型 12. [委派模式](./delegate-pattern) 13. [模板方法模式](./template-method-pattern) 14. [策略模式](./strategy-pattern) 15. [责任链模式](./chain-responsibility-pattern) 16. 迭代器模式 17. [命令模式](./command-pattern) 18. 状态模式 19. 备忘录模式 20. [中介者模式](./mediator-pattern) 21. 解释器模式 22. [观察者模式]() 23. 访问者模式 ### 模式PK ### 模式混编