在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程我想就是指按照这种思想来编程吧!实际上,在日常工作中,你已经按照接口编程了,只不过如果你没有这方面的意识,那么你只是在被动的实现这一思想;表现在频繁的抱怨别人改的代码影响了你(接口没有设计到),表现在某个模块的改动引起其他模块的大规模调整(模块接口没有很好的设计)等等。
Booch ...
转的文章,出处太多了,也不知道到底哪个才是真的出处。
7种设计坏味道
1.僵化性: 很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其它改动。
2.脆弱性: 对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题。
3.牢固性: 很难解开系统的纠结,使之成为一些可在其他系统中重用的组件。
4.粘滞性: 做正确的事情比做错误的事情要困难。
5.复杂性(不必要的): 设计中包含有不具任何直接好处的基础结构。
6.重复性(不必要的): 设计中包含有重复的结构,而该重复的结构本可以使用单一的抽象进行统一。
7.晦涩性: 很难阅读、理解。没有很好地表现出意图。 ...
摘抄自《OOD 启示录》--Arthur J.Riel
(1)所有数据都应该隐藏在所在的类的内部。p13
(2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。p15
(3)尽量减少类的协议中的消息。p16
(4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等]。 p16
(5)不要把实现细节(例如放置共用代码的私有函数)放到类的公有接口中。p17
如果类的两个方法有一段公共代码,那么就可以创建一个防止这些公共代码的私有函数。
(6)不要以用户无法使用或不感兴趣的东西扰乱类的公有接口。p17
(7) ...
- 浏览: 4859 次
- 性别:

- 来自: 深圳

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
碰到一个钉子户,请大家给 ...
楼主挺好一个人!
-- by wei841118z -
碰到一个钉子户,请大家给 ...
内容规定更死一些,比如,每天定时发邮件,确定几点更新SVN,几点写哪个类,几点到 ...
-- by jkfzero -
JBoss部署时版本冲突一例
我也遇到类似的问题,不过我们客户有要求,不能够替换,只能想办法让自己的应用去lo ...
-- by nicky_hk -
碰到一个钉子户,请大家给 ...
一个不能给团队带来正面影响的人,就踢出去 http://www.infoq.co ...
-- by xiaotian_ls -
小白学Junit4测试
深秋小雨 写道一个方法可能抛出多个异常,但执行一次只会抛出一个异常。 想对一个方 ...
-- by black_angle






评论排行榜