程序员的江湖
xwxc
这个作者很懒,什么都没留下…
展开
-
“学习OO好榜样”之面向对象设计原则
Open-Close原则是一个愿景性质的原则,如果系统能够达到Open-Close原则描述的情形就比较理想了,对扩展开放、对修改关闭,即,不修改原有代码即可完成对系统的扩展。实现Open-Closed原则,抽象化是关键。抽象层,因为抽象所以稳定。不变应万变,不用修改,满足Open-Closed原则的Closed一头。抽象层的具体实现层可以满足扩展要求,满足Open-Closed原则的Ope...2007-01-22 14:55:21 · 113 阅读 · 0 评论 -
“学习OO好榜样”之Bad Smell & Refactoring
Bad Smells & Refactoring以前做的一个培训,当时备课时还是花了一些工夫。ppt贴不上来,把备课稿贴在这,备份一个吧。 Bad Smells & Refactoring1 题记Any fool can write code that a computer can understand. Good programmers write code that ...2007-01-22 15:16:25 · 269 阅读 · 0 评论 -
“学习OO好榜样”之Divergent Change(发散式变化)、Shotgun Surgery(霰弹式修改)
Divergent Change(发散式变化)指的是“某一个类受到多种变化的影响”,A/B/C/D……多种功能变化的时候它都需要修改。病因大致是某个类负担了多项任务,太操心了。很可能需要再拆分几个类出来,把变化封装得更细。以前我写代码的时候有一个例子,曾经有一段时间,P_Unit类处理所有BSC单元的逻辑,但各种单板的逻辑是不一样的,于是DTB改逻辑的时候要修改P_Unit、ABPM改的时候...2007-01-22 15:11:21 · 632 阅读 · 0 评论 -
“学习OO好榜样”之Bridge模式
Bridge模式讲的是把抽象部分和实现部分隔离开,能够实现相互独立发展。我对Bridge模式依然理解得不是很深入,我盼望书中给我一个简单、清晰的例子来说明该模式的应用,但书本没有能够让我满意,当然也可能是我的问题。而且,书中的Airplane/AirplaneMaker这个例子放在这里说明Bridge是不恰当的。Airplane和AirplaneMaker并不能代表Bridge模式中需要的抽...2007-01-22 15:10:14 · 115 阅读 · 0 评论 -
“学习OO好榜样”之Facade模式
这个模式还是比较有用的,用于解开模块之间的复杂耦合。从道理上讲,符合“内部高内聚、外部松耦合”的要求。从实际操作上,各个模块经常分开开发、分开维护,于是使用Facade定义清晰接口,只访问一个门面类,显然好过模块之间的多个类之间的交叉依赖、关联。...2007-01-22 15:09:17 · 118 阅读 · 0 评论 -
“学习OO好榜样”之Flyweight模式
该模式的中英文名称之间不是直接翻译的,但表达了这个模式的两个特征,轻量级、共享。我理解,Flyweight模式就是为系统中需求数量多、但状态不多的轻量级对象建立一个共享实例池。思路比较容易理解。就不多说了。 ...2007-01-22 15:08:37 · 110 阅读 · 0 评论 -
“学习OO好榜样”之Proxy模式
大家越来越像了……从实现形式上看,Decorator模式与Proxy模式之间的区别不大,但从用意上看,前者是想增强方法本身功能、后者是想控制所包含对象的动作。Proxy模式的一个例子是书中的,在request方法前后增加pre、post方法来做额外工作。原始类、Proxy类都实现相同的接口,在做了可插入性考虑的系统,Proxy类就可以以原始类的身份被插入系统,原始类的动作就可以被控制,比如在...2007-01-22 15:07:43 · 112 阅读 · 0 评论 -
“学习OO好榜样”之Decorator模式
外部接口没有变化,但内部实现“偷偷”变化了。其实也不是“偷偷”,更应该光明正大地告诉人家,你是经过装饰的,虽然都有“显示鼻子”的接口方法,但你的鼻子可能是垫了东西的。需要注意的是,修饰过的类和被修饰的类是同类的。比如,实现相同的接口。装饰过的类要拥有一个未被装饰类的属性。即关联关系。(合成还是聚合我就懒得区分了。)装饰过的类的方法通常要在未被装饰类的方法基础上做点手脚,以体现装饰。顺着脑子...2007-01-22 15:06:25 · 101 阅读 · 0 评论 -
“学习OO好榜样”之Composite模式
个人感觉Composite模式是一个比较牛X的模式。完美地实现了“树”这一现实实体在OO软件世界的映射。此模式巧妙之处在于,树叶和枝干实现了同一接口,但树干同时是装载该接口实现类实例的容器,树干可以容纳树叶、同时也可以再容纳树干,于是,一棵数就完美地被描绘出来了。一个比较典型的例子就是,界面上的Panel是容器的同时、也是控件,可以容纳控件的同时也可以再容纳容器(这里说得就比较罗嗦了,容器本身...2007-01-22 15:05:28 · 130 阅读 · 0 评论 -
“学习OO好榜样”之Default Adapter模式
我觉得把Default Adapter模式和Adapter模式割裂开来,不会影响对Default Adapter模式的理解。Default Adapter模式就是为目标接口提供一个平庸实现层,真正的实现类从此平庸实现层继承,Override其中对自己有意义的方法,而其他方法保持其平庸状态。为Target接口所需的方法统统提供一套缺省实现,通常的做法是,除非你特别要求,否则我什么都不做。如果实...2007-01-22 15:04:35 · 119 阅读 · 0 评论 -
“学习OO好榜样”之Adapter模式
我对Adapter模式的理解是:某处有一些需求,可体现为Target接口(不妨假定Target有两个方法,m1、m2)。我们在满足该需求的时候,即构造类来实现Target接口的时候,很容易想到的是看看是否存在已有资源可被利用(重用)。比方说,此时我们发现Adaptee类实现了方法m1,如何重用?两种重用方式分别对应于Adapter模式的两种形态:1 继承的方式——类的Adapter模式...2007-01-22 15:02:49 · 107 阅读 · 0 评论 -
“学习OO好榜样”之创建类模式
周末再翻《Java与模式》,说说对创建类模式的一点理解。大家交流。创建类模式,我主要关注的是Simple Factory、Factory Method、Builder这几个。当然,其他一些模式可能更加常用,比如Singleton、Prototype,但比较简单,不涉及整体脉络,此处略去不述。首先,说说Simple Factory。创建类模式,都是对实例创建过程的封装。Simple Fac...2007-01-22 15:01:41 · 112 阅读 · 0 评论 -
“学习OO好榜样”之软件质量属性
以前写邮件的时候,很多同事都说软件产品的质量属性太多。周末重看《Java与模式》,发现阎宏博士的一些简短归纳,感觉有些道理,可作参考。阎宏认为,比较重要的质量属性为可维护性和可重用性。可维护性又分为:可扩展性、灵活性、可插入性。我认为,可维护性,分为:可读性、可扩展性、可修改性、可插入性,将更加圆整、更加容易理解。首先,代码要可读,可读才可理解,可理解才可维护。其余的可扩展性、可修改性、可...2007-01-22 14:58:33 · 139 阅读 · 0 评论 -
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[]...2007-01-24 17:05:00 · 183 阅读 · 0 评论