工作总结ppt模板免费下载 素材,seosem推广,成都品牌设计网站,wordpress4.9.x火车头发布1.从面向对象说起 ~~~~~~变化是代码复用的天敌#xff0c;面向对象的设计语言的优势就是抵御变化#xff01;这里的所谓抵御变化#xff0c;不是说采用面向对象的设计语言#xff0c;就没有变化#xff0c;而是将变化的范围降到最小。 ~~~~~~之前我们所认识的面向对象的语…1.从面向对象说起
~~~~~~ 变化是代码复用的天敌面向对象的设计语言的优势就是抵御变化这里的所谓抵御变化不是说采用面向对象的设计语言就没有变化而是将变化的范围降到最小。 ~~~~~~ 之前我们所认识的面向对象的语言具有封装、继承和多态三大特性但这是面向对象的底层思维 ~~~~~~ 从抽象思维认识面向对象它首先要能隔离变化从宏观的角度来看面向对象的语言更能适应软件带来的变化将这种变化的影响降到最低 ~~~~~~ 其次面向对象要求各个类之间各司其职从微观的角度来看面向对象更强调各个类各个承担的责任各个类之间各司其职变换导致的新增类型不应该影响原有的类一般使用C多态机制实现这种“各司其职”接口一致但是实现不一。
2.对象究竟是什么
~~~~~~ 从语言的角度来看对象封装了代码和数据 ~~~~~~ 从规格的角度来看对象是一系列的可被使用的公共接口 ~~~~~~ 从概念的角度来看对象是某种拥有责任的抽象
3.面向对象的设计原则8个
~~~~~~ 1.依赖倒置原则 ~~~~~~~~~~ 高层模块不应该依赖于低层模块二者都应该依赖于抽象 ~~~~~~~~~~ 抽象不应该依赖于实现细节而实现细节应该依赖于抽象
这里的高层模块可以理解为父类低层模块可以理解为子类抽象可以理解为抽象类
实现细节可以理解为具体的虚函数功能实现。这句话就是说父类不应该依赖子类它们都要依赖抽象类
抽象类中不要有具体的函数实现而具体的虚函数实现要依赖于抽象类所谓的依赖倒置是指在编写代码时一般的编写规则是抽象在最上然后父类最下面是子类。
但是设计模式的依赖关系是倒置的下面的代码需要依赖上面的这就是依赖倒置原则。~~~~~~ 2.开放封闭原则 ~~~~~~~~~~ 对拓展开放对修改封闭 ~~~~~~~~~~ 类的模块应该是可拓展的但是不可修改
当需求变化时首先想到的不应该是修改源代码修改的成本太高并且大型代码不能轻易修改
而是在原来代码不变的基础上增加一些代码以实现某些需求。
当然可拓展性需要提前在做好规划比如在抽象类中提前留好拓展接口~~~~~~ 3.单一职责原则 ~~~~~~~~~~ 相同的责任不要分散到不同的类中 ~~~~~~~~~~ 避免一个类承担不同的责任
单一职责的好处是减少耦合性提高复用性~~~~~~ 4.替换原则 ~~~~~~~~~~ 子类能够替换它的父类
为什么要强调子类能够替换父类呢如果子类能够替换父类说明父子类之间的强关系
至少父类的实现在子类中都有~~~~~~ 5.接口隔离原则 ~~~~~~~~~~ 不要给客户程序提供它们用不到的方法接口应该尽量小而完备。
客户程序用不到的类中方法就不要public出去
如果只是自己类中使用就private如果只是子类中使用就protected
真正有必要的情况下即客户程序真的需要这个方法才去public~~~~~~ 6.优先使用对象组合而不是类继承
继承某种程度上会破坏封装性父类子类间的耦合性高而对象组合不会出现这种问题。~~~~~~ 7.封装变化点
封装的最高境界是封装变化点一端变化一端不变化~~~~~~ 8.针对接口编程不针对实现编程