软件设计原则与UML类图

1 软件设计原则

  • 开闭原则(Open Closed Principle, OCP):对扩展开发,对修改关闭
  • 单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责
  • 里氏替换原则(Liskov Substitution Principle, LSP):所有引用基类的地方必须能透明地使用其子类对象
  • 依赖倒置原则(Dependency Inversion Principle, DIP):依赖于抽象,不能依赖于具体实现
  • 接口隔离原则(Interface Segregation Principle,ISP):类之间地依赖关系应该建立在最小的接口上
  • 合成/聚合复用原则(Composite/Aggregate Reuse Principle,C/ARP):尽量使用合成/聚合,而不是用过继承达到复用的目的
  • 最少知识原则(Least Knowledge Principle,LKP)或迪米特法则(Law of Demeter, LOD):一个软件实体应当尽可能少的与其他实体发生相互作用。

2 UML类图

image.png

3 Spring使用了哪些设计模式

  • 工厂设计模式:Spring使用工厂模式通过Beanfactory、ApplictionContext创建Bean对象
  • 代理设计模式:Spring AOP功能的实现
  • 单例设计模式:Spring中的Bean默认都是单例的
  • 模板方法模式:Spring中jdbcTemplate、hibernateTemplate等以Template结尾对数据库操作的类
  • 包装器设计模式:
  • 观察者模式:Spring事件驱动模型
  • 适配器模式:Spring AOP的增强或者通知使用到了适配器模式,Spring MVC中也使用了适配器模式适配Controller

4 JDK使用了哪些设计模式

  • 桥接模式
  • 适配器模式
  • 组合模式
  • 装饰器模式
  • 享元模式
  • 代理模式
  • 抽象工厂模式
  • 建造者模式
  • 工厂方法
  • 原型模式
  • 单例模式
  • 责任链模式
  • 命令模式
  • 解释器模型
  • 中介者模式
  • 备忘录模式
  • 空对象模式
  • 观察者模式
  • 状态模式
  • 策略模式
  • 模板方法模式
  • 访问者模式