设计模式(二)——面向对象设计原则

理解隔离变化

各司其职(责任)

对象

原则一:依赖倒置原则

高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
通过依赖设计来隔离变化

原则二:开放封闭原则(开闭原则)

对扩展开放,对修改封闭
类模块是可扩展的,但是不可修改

原则三:单一职责原则

原则四:Liskov替换原则

子类可替换父类,子类继承父类方法时
里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义:

  • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
  • 子类中可以增加自己特有的方法。
  • 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
  • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

原则五:接口隔离原则

定义

客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。

问题由来

类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。

解决方案

将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。


未遵循接口隔离原则的设计
好的接口设计

原则六:优先使用组合而非类继承

原则七:封装变化点

底层:封装数据

原则八:针对接口编程,而不是针对实现编程

产业的强盛的标志是——接口标准化
秦国的兵器标准化
毕升的活字印刷vs雕版印刷 松耦合设计 板字分离 板子和字靠接口连接

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 设计模式概述 在学习面向对象七大设计原则时需要注意以下几点:a) 高内聚、低耦合和单一职能的“冲突”实际上,这两者...
    彦帧阅读 9,176评论 0 14
  • 单一职责原则 (SRP) 全称 SRP , Single Responsibility Principle 单一职...
    米莉_L阅读 5,744评论 2 5
  • 目录: 设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒...
    加油小杜阅读 4,039评论 0 1
  • 世界母亲节来临, 孤女泣泪想妈亲。 妈妈笑貌地上画, 重温妈怀泪水淋。 怀抱温馨入梦乡, 母亲抚慰爱女心。 人生路...
    六月天气阅读 2,286评论 7 9
  • 日落之後 白晝即將謝幕 車窗之外 此刻呼嘯而過 ——命運的火車 一位穿著紅棉衣的小...
    內在航線阅读 5,552评论 6 13

友情链接更多精彩内容