面向对象设计基础原则(上)

227 阅读2分钟

这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战

image.png

设计模式

设计模式的本质是面向对象设计原则的实际运用,对类的封装、继承、多态以及类的关联关系和组合关系的充分理解

设计模式在所有面向对象的语言中都可以使用

设计模式的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强

设计模式的本质提高软件的维护性,通用性和扩展性,并降低软件的复杂度

设计模式并不局限于某种语言

内聚就是把自己的方法封装起来,别人只需要调用此方法就有相应的功能,比如一个类它的循环输出放到别人的类里面了,那么这时候需要把它的循环输出封装在自己的类里面,然后对外暴露一个public打印方法供外部调用即可,这样便实现高内聚

面向对象设计7大原则

1. 开闭原则 (重要)(OCP原则)

对扩展开放,对修改关闭。 有两个功能块,新增第三个功能块不会影响前两个功能块

2. 里式替换原则

子类可以扩展父类的功能,但不要改变父类的原有的功能。

子类尽量不要重写父类的方法

这个原则告诉我们,继承实际上让两个类耦合性增强了,在适当情况下,可以通过聚合,组合,依赖来解决问题就不要使用继承

3. 依赖倒置原则

要面向接口编程,不要面向实现编程。抽象不依赖细节,细节依赖抽象

抽象指的是接口或者抽象类,细节就是具体的实现类

接口或抽象类的目的是为了制定好规范

依赖关系传递有三种方式:

  1. 接口传递
  2. 构造方法传递
  3. setter方式传递

4. 单一职责原则

控制类的力度大小、 一个类就做这类事,一个方法就做一件事。将对象解耦、提高其内聚性。

也可以在方法做单一职责原则

每个类的职责要单一

if else if 慎用,他会增加耦合性

5. 接口隔离原则

为各个类建立它们需要的专用接口

设计接口时要保证他精简,单一

image.png

结尾

还有两个法则我们放到下一篇章来讲,合成复用与迪米特法则。