ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

面向对象设计原则总结

2021-10-17 18:35:22  阅读:143  来源: 互联网

标签:总结 依赖 原则 接口 面向对象 抽象 组件 Pizza


面向对象特性

  • 抽象
  • 封装
  • 继承
  • 多态

面向对象设计原则

一般设计原则

摘自《Head First 设计模式》

  • 封装变化
  • 多用组合,少用继承:has-a 比 is-a 更灵活,可运行时改变行为/属性
  • 针对接口编程,不针对实现编程:变量声明为超类型(接口/抽象类)
  • 为交互对象之间的松耦合设计而努力(想想观察者模式如何将主题和观察者之间解耦)
  • 类应该对扩展开放,对修改关闭
  • 依赖抽象,不要依赖具体类(依赖倒置)
  • 只和朋友交谈
  • 别找我,我会找你:超类调用决定何时子类
  • 类应该只有一个改变的理由

如何理解依赖? #include "Pizza.h"?

SOLID 原则

  • S-单一职责
  • O-开放关闭:对扩展开放,对修改关闭。扩展新功能不需要修改现有代码
  • L-李氏替代:需要父类对象的地方可以用任何子类对象替代
  • I-接口分离
  • D-依赖倒置
    Denpendency Inversion Principle,常见于工厂方法。
    强调“抽象”,不能让高层组件依赖低层组件。例如:不论是高层组件 PizzaStore(PizzaStore 行为由抽象 Pizza 定义)还是低层组件 ConcretePizza(实现了 Pizza 抽象接口)都依赖于 Pizza 接口。

依赖倒置指导方针

  • 变量不可以持有具体类的引用——改用工厂,避免直接使用 new 持有具体类的引用
  • 不要让类派生自具体类——派生自抽象类或接口,这样就不依赖具体类了
  • 不要覆盖基类中已经实现的方法——说明不是一个真正适合被继承的抽象

DRY 原则

Don't Repeat Yourself 不要重复

KISS 原则

Keep It Simple and Stupid 保持简单

标签:总结,依赖,原则,接口,面向对象,抽象,组件,Pizza
来源: https://www.cnblogs.com/tengzijian/p/15417626.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有