设计模式之设计原则及分类

个人理解

  • 设计原则是一种站在程序设计角度的思想,是对面向对象特点的一种延伸,是对封装、继承、多态、组合/聚合、抽象的扩展;告诉我们在程序设计时应该怎样来封装、继承、多态、组合/聚合、抽象。
  • 设计模式是站在软件系统、架构、结构的角度来考虑问题,是为了让软件系统具有稳定性、健壮性、可靠性、扩展性、可维护性。

单一原则(Single Responsibility Principle)

  • 一个类只负责一项职责,尽量做到类的只有一个行为原因引起变化。
  • 对于封装的一种补充;
  • 比如Mybatis 中的 UserDao;OrderDao 等:只负责对某一个表的增删改查;比如Spring中的配置类、请求类、缓存类 等 :只负责某一个具体(配置、请求、缓存)的功能;

接口隔离(interface segregation principle)

  • 使用者不应该依赖它不需要的接口;
  • 类之间依赖关系应该建立在最小的接口上,强调降低依赖,降低耦合;
  • 它是对继承的扩展;

开闭原则(Open Close Principle)

  • 对扩展开放,对修改关闭:
    – 在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果;
    – 实现:使用接口和抽象类;接口封装、抽象机制、多态的体现以及运用,比如策略模式;

里氏代换原则(Liskov Substitution Principle)

  • 任何基类可以出现的地方,子类一定可以出现;
    – 在程序设计的时,在继承时尽量不要重写父类的方法,在父类中定义的方法被认为是一种契约;
  • 在适当的时候我们可以采用聚合、组合、依赖的方式来降低耦合度;
  • 实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范;

依赖倒转原则(Dependence Inversion Principle)

  • 面向接口编程,依赖于抽象而不依赖于具体,解决类与类之间过度依赖;
  • 比如:接口注入、构造注入(接口类型参数)、setter注入(接口类型参数);我觉得Spring IOC注入方式就是遵循了该原则;

迪米特法则,又称最少知道原则(Demeter Principle)

  • 一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立;
  • 一个类对于自己依赖的类知道的越少越好;即将逻辑尽量的封装在类的内部;
  • 体现如何封装和应该如何组合;

合成复用原则(Composite Reuse Principle)

  • 尽量使用合成/聚合的方式,而不是使用继承;

分类

  • 创建型模式
    单例模式、原型模式、工厂模式、抽象工厂模式、建造者模式
  • 结构型模式
    – 适配器模式、桥接模式、组合模式、外观模式、享元模式、代理模式装饰模式
  • 行为型模式
    – 模板方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介模式、备忘录模式、解释器模式、状态模式、策略模式责任链模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值