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

面向对象(二)

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

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

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

    替换算法

    对象间

    对象设计

    移动字段,移动方法,

    提取类,内联并移除类

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

    用对象取代数值项

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

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

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

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

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

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

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

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

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

    用异常取代错误码

    用检查取代 try catch

    字段,方法,移动到父类

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

    相似类,提炼出一个父类

    父类,子类合并在一起

    组合取代继承

    继承取代组合

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

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

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

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

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

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

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

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

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

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

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

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

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

    关注,方法的输入

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

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

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

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

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

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

    相关文章

      网友评论

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

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