在程序中包含了类的声明, 引用, 并不能就认为是面向对象. 面向对象是一种开发理念. 面向对象和面向过程的核心区别是如何分配指责.
过程式编程表现为一系列命令和方法的连续调用, 代码中含有很多的条件判断, 关联度高. 这种自顶向下的控制方式导致了重复和相互依赖的代码遍布于整个项目. 面向对象, 则将职责移交到专门的对象中, 减少代码之间的相互联系.
过程式编程有一下缺点:
1, 任何项目, 需求是不断变化的, 过程式编程, 导致代码越来越繁杂, 维护性差
2, 代码冗余
3, 代码阅读, 维护, 扩展都变得异常艰难.
面向对象编程, 一般应该实现, 封装, 继承, 多态. 具体的是
1. 职责
过程化的编码, 控制代码的职责是判断语句.
面向对象的编码, 父类的职责是提供规范, 判断格式也只有一次, 并且不考虑细节.
2. 内聚
内聚是一个模块内部各成分之间相关程度的度量. 如果组件职责清晰, 分工明确, 那么代码较为好维护; 如果代码之间关联太广, 则维护性较差.(因为你想修改某部分代码的同时, 要修改相关代码).
3. 耦合
当系统各部分代码紧密绑在一起时, 就会产生紧密耦合. 高耦合使代码扩展和维护异常艰难, 而低耦合基本都是分开的功能模块, 维护和扩展都非常方便.
(备注: 高内聚 = 低耦合)
4, 面向对象设计的 4 个规范
1, 代码重复, 如果有大量的代码重复, 请放到父类或者公共类中去, 提供调用.
2, 一个类如果处理的功能太多, 尽量进行分割, 每个类最好保持独立性, 在类抽取出来的时候还能单独使用
3, 万能类, 如果一个类实现了所有功能, 请把它分成子类和父类, 父类做规范, 子类去实现
4,if 语句, 如果类中包含有大量的 if 语句, 特别是一种条件判断在类中重复出现, 就说明这个类需要拆分成多个类.
来源: http://www.bubuko.com/infodetail-2898952.html