OO设计原则 和设计模式

所谓的 OO设计原则的目的 是 1. Extensibility;2. Flexibility;3. Pluggability

1. 最小职责 原则:一个类做一个职责(角色);SRP

2. 里氏替换原则:子类不能改变 父类的 契约,即 子类不能override 父类的方法, 可以有条件 overload;输入参数更宽松, 返回参数 更严格;LSP

3. 依赖倒置原则:面向接口,所有的 底层类和高层类(具体业务逻辑)都依赖上层的 接口定义;DIP

4. 最小接口原则: 接口或抽象类的 定义 要 包含尽量少的 方法声明;ISP

5. 迪米特原则:对依赖的对象了解尽量少的信息;通过中间层的 对象了解;

6. 组合/聚合原则:多用组合,少用继承;因为 组合可用更灵活的“复用”对象所属类的 代码,并且可用在runtime(运行时)动态改变对象的行为; 使用继承则子类全盘接受 父类的 方法实现(遵守里氏替换原则),并且无法运行时动态改变方法实现;所以 需要 “封装变化”,再 组合之; strategy 模式 很好的体现了这个原则;

7. 开闭原则:软件代码(类级别)对修改关闭,对扩展开放;这个是理论上的;OCP

实际的设计/开发过程应该是: 先做领域模型,理解业务上要做什么事情,期望拿到什么价值;这个阶段切忌思考 如何抽象接口/类,如何设计类;  第二 考虑 设计层面有哪些需要抽象,有哪些依赖,具体方法接口如何设计;  最后才考虑 用哪种模式,那个包来实现;

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

推荐阅读更多精彩内容

  • 设计模式之六大原则(转载) 关于设计模式的六大设计原则的资料网上很多...
    霄霄霄霄阅读 4,385评论 0 1
  • 目录: 设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒...
    加油小杜阅读 4,035评论 0 1
  • 设计模式六大原则 设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类...
    viva158阅读 4,134评论 0 1
  • 转载标注声明:http://www.uml.org.cn/sjms/201211023.asp 目录:[设计模式六...
    Bloo_m阅读 4,062评论 0 7
  • 前言 设计模式六大原则网上资料比较多比较乱,本文将网上的一些好的资料做一下整理,以便随时翻阅。友情提示,设计模式虽...
    简单的土豆阅读 5,286评论 0 10

友情链接更多精彩内容