美文网首页面向对象
面向对象(二)

面向对象(二)

作者: 万州大牛 | 来源:发表于2017-03-12 13:32 被阅读3次

方法太长了,方法內局部变量太多,并且繁杂在一起

此时建立一个,方法对象类,局部变量就变成,类的私有字段,原宿主类私有字段,通过原宿主对象传递,再将方法,进行提取为更多小方法。

替换算法

对象间

对象设计

移动字段,移动方法,

提取类,内联并移除类

移动方法非常重要,因为方法代表的就是职责。

用对象取代数值项

简单的例子,一开始,你可能以简单的字符串表示电话号码,可是到后面,逻辑变多复杂,需要灵活维护扩展,你就需要新建电话号码对象。

方法,主要是用来,改变对象的状态,或者,获取对象的状态。要把改变,获取,这两种行为分开。

考虑,你取对象的属性作为一个方法的参数,对比直接传递这个对象?

考虑,调用一个方法获得返回值,然后把这返回值作为参数传给另一个方法,对比在另一个方法里直接调第一个方法?

考虑,有的方法参数总是一起传递,对比把一起传递的参数封装为一个对象?

考虑,对象构建时的常量,readonly

方法,没有公开,就要私有。

考虑,将构造函数改为静态工厂方法,在基类构造子类。

函数返回值,尽量是确切类型,不要object,使用泛型很好。

用异常取代错误码

用检查取代 try catch

字段,方法,移动到父类

父类字段,方法移动到具体子类

相似类,提炼出一个父类

父类,子类合并在一起

组合取代继承

继承取代组合

单一职责,职责暂且就是指方法,职责有大小,职责有粒度,驾驶员开车是职责,开车的具体操作分很多细小的职责。

保安门卫的职责是什么,具体细分的职责是什么。

面对软件开发,初期可能就是从大的职责出发,面对小的职责,可能变化的职责,单独提取出来并封装,保证软件设计的灵活可维护性。

考虑,在需求问题中寻找名词,将名词转换为对象。

面向对象分析,功能分解方法。

功能分解是一种自然的处理复杂问题的方法,所谓大事化小,小事化了。

功能分解,大功能处理步骤,小功能处理步骤,小小功能处理步骤。

功能分解的问题,通常需要主程序控制子程序。

功能分解的问题,应对需求变化的无能为力。

如果一个人关注的东西过多,他是忙不过来的,最终导致关注的事情失败。

如果代码对象关注的东西太多,那后面的需求变更,修改,就坐等bug到来。

未来太多的变化,一切事物都处在变化之中,唯一不变的就是变。

对于一个大方法,更好的方法是分解为更多的小方法。

关注,方法的输入

关注,方法內用到的对象字段

关注,方法是否是对象的职责

低内聚,功能繁杂,和所有对象都似乎有关联,俗称,上帝对象。

我们应该创建的对象是,高内聚,松耦合的对象。

君子生非异也,善假于物也!

超乎能力者不是生来与众不同,而是善于借助外物而已。

相关文章

  • java基础02面向对象

    二、面向对象 1、面向对象思想: (1)概述:面向对象是相对于面向过程而言的,面向过程强调的是功能,面向对象强调的...

  • java SE目录

    java SE目录 java基础(一)java基础(二)关键字面向对象(一)面向对象(二)面向对象(三)集合(一)...

  • JS面向对象精要(二)_函数

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(三)_理解对象

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(四)_构造函数和原型对象

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(五)_继承

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • Python 面向对象 - 01 基本概念

    目录一、面向过程 和 面向对象 基本概念1.1 面向过程1.2 面向对象二、类和对象2.1 类2.2 对象2.3 ...

  • Java基础总结2-面向对象

    二、面向对象 1、面试对象思想: (1)概述:面向对象对相对于面向过程而言的,面向过程强调的是功能,面向对象强调的...

  • 面向对象编程(二)

    面向对象编程(二) -------面向对象的基本特性 1、面向对象的基本特性 面向对象的编程是把现实客观存在的...

  • 第七篇 面向对象编程

    一、复习 二、time模块的补充 三、面向对象 四、初始面向对象和类 五、面向对象之间的交互 六、面向对象的组合 ...

网友评论

    本文标题:面向对象(二)

    本文链接:https://www.haomeiwen.com/subject/tdwtwttx.html