面向对象设计 - 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)
老板与老板间进行沟通,不要越级下属与上级或上级直接与其他部门的下级沟通,不用管具体的工作由其他部门的谁来完成。接口功能单一,但相互依赖,并不管具体实现者