设计模式总览

设计模式总览

三大类

设计模式主要分为以下三大类:

  • 创建型模式(Creational Patterns)

    • 单例(Singleton)模式
    • 原型(Prototype)模式
    • 工厂方法(FactoryMethod)模式
    • 抽象工厂(AbstractFactory)模式
    • 建造者(Builder)模式
  • 结构型模式(Structural Patterns)

    • 代理(Proxy)模式
    • 适配器(Adapter)模式
    • 桥接(Bridge)模式
    • 装饰(Decorator)模式
    • 外观(Facade)模式
    • 享元(Flyweight)模式
    • 组合(Composite)模式
    • 过滤器模式(Filter Pattern)
  • 行为型模式(Behavioral Patterns)

    • 模板方法(Template Method)模式
    • 策略(Strategy)模式
    • 命令(Command)模式
    • 职责链(Chain of Responsibility)模式
    • 状态(State)模式
    • 观察者(Observer)模式
    • 中介者(Mediator)模式
    • 迭代器(Iterator)模式
    • 访问者(Visitor)模式
    • 备忘录(Memento)模式
    • 解释器(Interpreter)模式

七大原则

1)依赖倒置原则(Dependence Inversion Principle,DIP)

高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象

面向接口编程,而不是面向实现类

2)单一职责原则(Single Responsibility Principle,SRP)

一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分

每个类只负责自己的事情,而不是变成万能

3)接口隔离原则(Interface Segregation Principle,ISP)

一个类对另一个类的依赖应该建立在最小的接口上。

各个类建立自己的专用接口,而不是建立万能接口

4)迪米特法则(Law of Demeter,LoD)

5)最少知识原则(Least Knowledge Principle,LKP)

只与你的直接朋友交谈,不跟"陌生人"说话

无需直接交互的两个类,如果需要交互,使用中间者

过度使用迪米特法则会使系统产生大量的中介类,从而增加系统的复杂性,使模块之间的通信效率降低

6)合成复用原则(Composite Reuse Principle,CRP)

7)组合/聚合复用原则(Composition/Aggregate Reuse Principle,CARP)

软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现

优先组合,其次继承

相关推荐
毕设源码-朱学姐几秒前
【开题答辩全过程】以 广州网红点打卡介绍网站为例,包含答辩的问题和答案
java·eclipse
程序定小飞21 分钟前
基于springboot的web的音乐网站开发与设计
java·前端·数据库·vue.js·spring boot·后端·spring
Hello_WOAIAI23 分钟前
2.4 python装饰器在 Web 框架和测试中的实战应用
开发语言·前端·python
搬山.摧城29 分钟前
线程池和单例模式
开发语言·单例模式
百锦再33 分钟前
第1章 Rust语言概述
java·开发语言·人工智能·python·rust·go·1024程序员节
武昌库里写JAVA37 分钟前
element-ui 2.x 及 vxe-table 2.x 使用 css 定制主题
java·vue.js·spring boot·sql·学习
一叶之秋141243 分钟前
QT背景介绍与环境搭建
开发语言·qt
java1234_小锋1 小时前
PyTorch2 Python深度学习 - 模型保存与加载
开发语言·python·深度学习·pytorch2
JavaGuide1 小时前
OPPO 后端校招面试,过于简单了!
java·后端
码割机1 小时前
Linux服务器安装jdk和maven详解
java·linux·maven