面向对象七大设计原则

七大设计原则

单一职责原则

每一个类应该专注于做一件事情
可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;提高类的可读性,提高系统的可维护性;变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。

开闭原则

面向扩展开放,面向修改关闭
为一个软件系统增加新功能时,只需要从原来的系统派生出一些新类就可以,不需要修改原来的任何一行代码。

里氏替换原则

**子类必须能够替换任何地方的父类 **
比如玩具枪继承枪,但在战争中无法代替枪用于攻击

合成/聚合原则

尽量使用合成/聚合而不使用类继承
比如把”总监”,”经理”,”学生”当成”人”的子类。错误在于把”职位”和”人”的等级结构混淆了。一个人可以同时拥有多个职位。如果按继承来设计,一个人只能有一个职位,而且无法再改变。
正确的是建立抽象类”职位”,”总监”,”经理”,”学生”是”职位”的子类,”人”可以拥有多个”职位”。

迪米特法则(最少知道原则)

一个对象应当对其他对象有尽可能少的了解
比如你去买一辆车,给钱就行,不需要知道车是怎么生产的。

依赖倒置原则

让高层模块不直接依赖低层模块
若高层模块A直接依赖低层模块B,假如要将A改为依赖C,则必须修改A的代码。而将A修改为依赖接口I,更换底层模块时只需实现接口I

接口隔离原则

一个接口只应该描述一种能力
例如,琴棋书画应该设计为四个接口,而不是一个接口中的四个方法,因为琴棋书画四样都精通的人还是少数,如果按能力分开,会几个就实现几个接口,会使每个接口更好地被复用

你可能感兴趣的:(面向对象七大设计原则)