群组知识库
Java的一个基础又简单的知识点:by value
前几天,网上找了套java题目,给项目组成员做了一次考试,意图是让大家知道很多基础概念还不一定清楚,于是应该good good study,day day up。 考试之后,有同事问起一个“by value”知识点相关的题目: Given the following code: public class Test{ public static void main(String args[]) { S ...
“学习OO好榜样”之Bad Smell & Refactoring
Bad Smells & Refactoring 以前做的一个培训,当时备课时还是花了一些工夫。ppt贴不上来,把备课稿贴在这,备份一个吧。 Bad Smells & Refactoring 1 题记 Any fool can write code that a computer can understand. Good programmers write code that hu ...
“学习OO好榜样”之Divergent Change(发散式变化)、Shotgun Surgery(霰弹式修改)
Divergent Change(发散式变化) 指的是“某一个类受到多种变化的影响”,A/B/C/D……多种功能变化的时候它都需要修改。 病因大致是某个类负担了多项任务,太操心了。很可能需要再拆分几个类出来,把变化封装得更细。 以前我写代码的时候有一个例子,曾经有一段时间,P_Unit类处理所有BSC单元的逻辑,但各种单板的逻辑是不一样的,于是DTB改逻辑的时候要修改P_Unit、ABPM改的时候要 ...
“学习OO好榜样”之Bridge模式
Bridge模式讲的是把抽象部分和实现部分隔离开,能够实现相互独立发展。 我对Bridge模式依然理解得不是很深入,我盼望书中给我一个简单、清晰的例子来说明该模式的应用,但书本没有能够让我满意,当然也可能是我的问题。 而且,书中的Airplane/AirplaneMaker这个例子放在这里说明Bridge是不恰当的。 Airplane和AirplaneMaker并不能代表Bridge模式中需要的抽象 ...
“学习OO好榜样”之Facade模式
这个模式还是比较有用的,用于解开模块之间的复杂耦合。 从道理上讲,符合“内部高内聚、外部松耦合”的要求。从实际操作上,各个模块经常分开开发、分开维护,于是使用Facade定义清晰接口,只访问一个门面类,显然好过模块之间的多个类之间的交叉依赖、关联。