重构手法:简化条件表达式

仅仅是“重构——改善既有代码的设计”一书的备忘。

 

1. Decompose Conditional(分解条件表达式)

 

2. Consolidate Conditional Expression(合并条件表达式)

 

3. Consolidate Duplicate Conditional Fragments(合并重复的条件片段)

——将各个条件中重复片段提取出来

 

4. Remove Cont[......]

Read more

Posted in 读书笔记 | Tagged | Leave a comment

重构手法:重新组织数据

仅仅是“重构——改善既有代码的设计”一书的备忘。

 

1. Self Encapsulate Field(自封装字段)

 

2. Replace Data  Value with Object(以对象取代数据值)

 

3. Change Value to Reference(将值对象改为引用对象)

 

4. Change Reference to Value(将引用对象改为值对象)

 [......]

Read more

Posted in 读书笔记 | Tagged | Leave a comment

重构手法:在对象之间搬移特性

仅仅是“重构——改善既有代码的设计”一书的备忘。

 

1. Move Method(搬移函数)

 

2. Move Field(搬移字段)

 

3. Extract Class(提炼类)

——某个类做了应该两个类做的事。

 

4. Inline Class(将类内联化)

——类没有做太多事

 

5. Hide Delegate(隐藏“委托关系”)

——服务对象应该对客户[......]

Read more

Posted in 读书笔记 | Tagged | Leave a comment

重构手法:重新组织函数

仅仅是“重构——改善既有代码的设计”一书的备忘。

 

1. Extract Method(提炼函数)

 

2. Inline Method(内联函数)

 

3. Inline Temp(内联临时变量)

 

4. Replace Temp with Query(以查询取代临时变量)

 

5. Introduce Explaining Variable(引入解释性变量)

——引入解释性[......]

Read more

Posted in 读书笔记 | Tagged | Leave a comment

设计模式应用:状态模式

在实际的开发中会遇到很多涉及状态变更的情况,如电梯、商品、订单,另外像编译器实现中代码的解析也是一个状态机的实现。对于这些牵扯到状态变更的情况,你当然也可以使用各种switch……case,if else的组合来实现,但是这样子就不符合开闭原则了(说人话=。=,也即会把代码搞得很乱,降低效率,而且不易于扩展,后续如果要加一个状态,这里得改,那里也得改,对于维护这种代码,说多了都是泪)。

 

这里以一个简单的订单状态变更为例,其状态转换如:

下单——>(付款)——[......]

Read more

Posted in 算法 | Tagged | Leave a comment

设计模式应用:访问者模式

1. 写在前面

从读书时代到现在(貌似中间只有两个月=。=),陆陆续续学过设计模式很多次,也看过很多相关的书,从经典的GOF设计模式,到大话设计模式等等,但是到最后还是会发现,自己貌似除了对比较常见、常用的工厂、观察者、命令、访问者等几个设计模式能直接应用外,其它的都只能有个模糊的印象。

 

2. 访问者模式概念(visit模式)

采用”GOF设计模式“中的方法,要描述一个设计模式需要从几个方面出发:意图、别名、动机、适用性、结构等等,在这里,我们只提供几个东西[......]

Read more

Posted in 算法 | Tagged | Leave a comment