重构依旧在前行
重构的工作昨天刚刚做完计划,打算这礼拜要结束,没想到领导出差回来了,上午刚把完成的程序提交测试,就开会讨论后期工作,还要为了下午的新版程序定边界,中午困得要死吃晚饭看了集Friends没记笔记就睡着了,下午弄了几个小核心的GUI,结果发现填报表单的界面如果动态设计起来会比较困难,又开会调整了很多程序约束条件毕竟需求不用特别死,这样开发起来比较容易,下一步明天就要将界面都画出来,幸好流程领导都调查完了,这两天的工作也够紧张的了,估计重构这本书看起来会稍微慢些了,那下周也要结束它!
这么忙包子哥竟然还要给我本《企业应用架构模式》说是看前几章,关键他喵的还影印版啊,这东西看的比中文版不知道费多大劲!先看完重构吧!
SelfEncapsulateField自封装值域,对于值自己进行get,set方法的建立,目的是方便在子类中重写值而不改变方法。
ReplaceDateValuewithObject以对象取代数据值,当简单数据向复杂演化时,要注意建立对象。
ChangeValuetoReference将实值对象改为引用对象,当一个对象存在可修改数据与不可修改数据的时候,并且这一修改对各个引用此对象的地方都有所影响,这就要将实值对象改为引用对象。这个比较重要,也提供了一些根据业务所编程的一些思路。
ChangeReferencetoValue将引用对象改为实值对象,当觉得用引用对象难以使用时就应该改为值对象了,实值对象有一个特点是不可变,无论何时调用一个查询条件都会得到同样的结果,如果这个值可变,你就要确定变更时还要自动更新其他的值。
ReplaceArraywithObject以对象取代数组,动机:数组没有明确的标识,如果过多会带来麻烦。
DuplicateObservedData复制“被监视数据”将数据拷贝到一个域模型中,建立一个观察者模式,用以对域模型和GUI内的重复数据进行同步控制。动机:不同的GUI使用相同的域模型。这个需要了解下观察者模式。
ChangeUnidirectionalAssociationtoBidirectional将单向关联改为双向关联,这个我到觉得没什么必要,没感觉出来哪里必须使用,不过双向向单向关联倒是经常使用。
ReplaceTypeCodewithState/Strategy以状态或者策略取代型别码,这个观点是使用State或Strategy模式进行重构。

浙公网安备 33010602011771号