面向对象设计 - pingdongyi/blog-2 GitHub Wiki

用抽象的思维去看待事物,抽象成大家可以看得到,可以理解的东西。

三大特性

封装

封装也可以说是抽象,把客观事物抽象成实体、类或业务模型,抽象出其属性或特点和方法或动作,封装起来实验信息隐藏。

继承

继承就是提取通用的共同的特点及方法,实现代码复用,也是从一般到特殊的过程。可以通过抽象类或接口来实现。

多态

多态是同一种类型的事物有多种不同的形态,他们会通过相同的方式实现不同的效果,多指继承重写与同名不同参的方法等。

五大基本原则

单一职责原则SRP(Single Responsibility Principle)

要专要精,功能要单一,负责多,功能多,效果变会变差。

开放封闭原则OCP(Open-Close Principle)

要把接口暴露出来,内部的实现隐藏起来。大家只需要知道可以提供很好的这个功能,具体是怎么工作的不需要知道。

替换原则(the Liskov Substitution Principle LSP)

子类可以做父类所有的工作,且可以重写其方法用同样的形式来实现不同的效果。

依赖原则(the Dependency Inversion Principle DIP)

也叫做依赖倒置原则,具体依赖于抽象,上层依赖于下层。B依赖于A的功能,但具体该有谁来执行A的功能,则应该有A的某个子类来执行,要学会放权,让其下属去帮忙完成相应工作。

接口分离原则(the Interface Segregation Principle ISP)

老板与老板间进行沟通,不要越级下属与上级或上级直接与其他部门的下级沟通,不用管具体的工作由其他部门的谁来完成。接口功能单一,但相互依赖,并不管具体实现者