面向对象七大设计原则
七大设计原则 单一职责原则
【面向对象七大设计原则】每一个类应该专注于做一件事情开闭原则
可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;提高类的可读性,提高系统的可维护性;变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。
面向扩展开放,面向修改关闭里氏替换原则
为一个软件系统增加新功能时,只需要从原来的系统派生出一些新类就可以,不需要修改原来的任何一行代码。
**子类必须能够替换任何地方的父类 **合成/聚合原则
比如玩具枪继承枪,但在战争中无法代替枪用于攻击
尽量使用合成/聚合而不使用类继承迪米特法则(最少知道原则)
比如把”总监”,”经理”,”学生”当成”人”的子类。错误在于把”职位”和”人”的等级结构混淆了。一个人可以同时拥有多个职位。如果按继承来设计,一个人只能有一个职位,而且无法再改变。
正确的是建立抽象类”职位”,”总监”,”经理”,”学生”是”职位”的子类,”人”可以拥有多个”职位”。
一个对象应当对其他对象有尽可能少的了解依赖倒置原则
比如你去买一辆车,给钱就行,不需要知道车是怎么生产的。
让高层模块不直接依赖低层模块接口隔离原则
若高层模块A直接依赖低层模块B,假如要将A改为依赖C,则必须修改A的代码。而将A修改为依赖接口I,更换底层模块时只需实现接口I
一个接口只应该描述一种能力
例如,琴棋书画应该设计为四个接口,而不是一个接口中的四个方法,因为琴棋书画四样都精通的人还是少数,如果按能力分开,会几个就实现几个接口,会使每个接口更好地被复用
推荐阅读
- 数组常用方法一
- jQuery插件
- iOS面试题--基础
- 口红选得好,对象不愁找......
- java静态代理模式
- Python-类和对象
- JavaScript|JavaScript: BOM对象 和 DOM 对象的增删改查
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- 1-Java基础知识
- 14--Python|14--Python 面向对象进阶