随笔分类 -  OO迷思

摘要:目前有20种不同的操作流程,现在随意提出一种或多种形成一个组合流程,每个组合流程将会都有可能发生改变,而组合流程将会组合成更多的流程,目前已知所有的流程均是同步的,是否有通用的编程方法实现任意流程的组合? 采用简单的面向对象方法来解决,那么,针对20个流程需要创建20个不同的对象,并赋予它们20种差异来表示它们的不同,实际上,这只是一个简单的加法,创建20个对象后,随机从中抽取任... 阅读全文
posted @ 2007-12-15 00:40 一根神棍研古今 阅读(401) 评论(0) 推荐(0)
摘要:1 大多数情况下,你可以强制性地对很多事物进行分类,但是你并没有办法让它们强制按照你的分类方法进行变化,这就意味着有时候事物的一些简单的变化,被你的分类视角进行转化后,会在多个分类的后的视角内出现变化,这会导致简单的行为复制化.虽然OO并不定要严格按照分类方式处理,但是一旦你这样做了,OO将会失去可替换的特性. 2 由于它们是多个正交方面组合在一起的系统,往往就会遇到在实际中的阻碍... 阅读全文
posted @ 2007-12-14 22:45 一根神棍研古今 阅读(1793) 评论(2) 推荐(0)
摘要:本文译自:http://www.geocities.com/tablizer/oopbad.htm,仅供参考 *神话:面向对象是一种经过证明的通用技术 *神话:面向对象的模型比现实世界中更加美好 *神话:面向对象编程,使编程看起来更漂亮 *神话:面向对象编程,使编程更容易和更快捷 *神话:面向对象消除了"complexity"的"case"或"... 阅读全文
posted @ 2007-12-14 22:15 一根神棍研古今 阅读(2075) 评论(10) 推荐(0)
摘要:万物的基础是循环,状态的出现,就是循环带来的一段时期持续的特征呈现,而如果循环具有两次或两次以上时,我们就不得不使用for或while或其它什么来实现重复代码的执行。 既然循环是万物的基础,那么为什么我们还要反过来遇到有状态呈现时用循环语句来实现呢?实际上,无论何时都有循环出现,那么循环就应该是一种默认的实现,我们不应该针对数组或是集合进行处理,反过来我们应该认为万物能够,它就是一... 阅读全文
posted @ 2007-12-01 15:29 一根神棍研古今 阅读(433) 评论(0) 推荐(0)
摘要:基本结构: private void Invoke(Class obj) { if typeof(obj)="x" then dosomethingX(); if typeof(obj)="y" then dosomethingY(); } 凡是符合这种结构的,都可以将dosomething移到obj中作为obj的一个成员,然后实现xClass,yClass,再采用如下方式调用 ... 阅读全文
posted @ 2007-11-11 22:50 一根神棍研古今 阅读(1023) 评论(0) 推荐(0)
摘要:虽然没有任何证据明确指出“一切皆对象的”概念,但如果采用了面向对象思想来分析并模拟一个系统的行为时,就最起码必须要遵守“尽量把一切转化为对象”的原则。即便是不能转化的也要试图转化,否则问题无法得到解决。通常的设计思路是根据需求决定问题的领域,然后再领域之中细划,按照直观认识与经验,先弄清系统的行为有哪些,它需要做些什么,做这些事情需要些什么东西,出于扩展性、安全性等因素,这些东西哪一些... 阅读全文
posted @ 2007-09-28 12:36 一根神棍研古今 阅读(3710) 评论(10) 推荐(0)
摘要:哲学或纯理论意义上的对象定义并不是方法字段加属性这种模式化的定义方法,对象这个概念,准确说应该是人类能够并识别提取出来概念标识。可以认为一个bit是一个对象,几个bit组成的一个字节也是一个字节也是一个对象。大凡只要能够认识并能提取出来辨认出它与其它事物有什么不同的特征的就可以称之为对象。 如果想要更加含糊一些的话,我们可以认为类也是对象,因为类是对象的结构描述,它自身... 阅读全文
posted @ 2007-09-17 14:59 一根神棍研古今 阅读(546) 评论(1) 推荐(0)
摘要:这段时间都忙着研究j2me游戏,发现一个令人非常不快的问题:代码大小。基本上,这是第一次见识到连代码都要有限制的开发,在Nokia S40上,排除其它要求外,代码容量基本上要求不超过30K。核计了一下,不禁郁闷,一个类,里面什么也不写,都要占掉200多字节,这样折腾辛苦啊。 本来设计的结构的中,动画播放有一个数据层,一个视图层,数据层里存放的就是精灵自身的固定结构,属于统一... 阅读全文
posted @ 2006-07-29 19:19 一根神棍研古今 阅读(860) 评论(1) 推荐(0)
摘要:interface与delegate是有区别的,interface 面向于类的,实现了某interface的类,该interface可以当作该类的实例的对象指针来用,而degelate是面向于方法,正如C++中的函数指针,虽易滥用,但它非常强大,它主要是用为函数指针来用。 换而言之,如在职责链之类的模式中,模式中定义的处理链条是以对象责任为中心,强调的是对于对象的引用,此时用interface来实... 阅读全文
posted @ 2005-07-13 10:48 一根神棍研古今 阅读(1410) 评论(0) 推荐(0)
摘要:过路人遇到一位醉汉在路灯下,跪在地上用手摸索。他发现醉汉正在找自己房屋的钥匙,便想帮助他,问道:“你在什么地方丢掉的呢?”醉汉回答是在他房子的大门前掉的。过路人问:“那你为什么在路灯下找?”醉汉说:“因为我家门前没有灯。” 似乎,我也犯过这种错误,在以前的软件开发之中,有一个功能要求数据库的数据在变化后,能够及时地反馈到应用程序之中。当时采用的是SQL Server2000,这种静态关系数... 阅读全文
posted @ 2005-07-12 14:02 一根神棍研古今 阅读(1025) 评论(2) 推荐(0)
摘要:续:玩O/R Mapping的体验,及由它想到的,胡思乱想,思维跳跃 阅读全文
posted @ 2005-06-11 17:55 一根神棍研古今 阅读(1702) 评论(0) 推荐(0)
摘要:方法不等于方法学。 无论哪本书上都指明了TDD不是方法学,著名的<<测试驱动开发>>一书的作者Kent Beck 也是这样定位它的。 下面,是较科学的态度来看待TDD目前的状况: 软件的开发方法中的测试方法学,应该包括完整的理论,而目前的TDD本身只是还只能是一个开发方法。如果要使用TDD成为开发方法学,那么要至少包括以下内容: 1、可测性设计理论及实践 2、扫描和边界扫描的相关测试理... 阅读全文
posted @ 2005-01-10 14:15 一根神棍研古今 阅读(1353) 评论(4) 推荐(0)
摘要:代码的耦合度,是指代码中的单元代码的紧密程度,其中一个单元代码的更改对其它单元代码的影响力与作用。代码间的耦合度越高,系统就在变动时就更加难以控制,但并非不能控制,只是你将为此付出巨大的代价。 软件的设计,不仅是理清思路,更多的意义是将软件中的逻辑结构进行合理地描述,力图减少各单元代码间的影响力,使得系统在控制上更加容易,减少出错的机会。 根据现实而言,系统是一个客观的东西,现在科学... 阅读全文
posted @ 2005-01-09 20:17 一根神棍研古今 阅读(2553) 评论(4) 推荐(0)

Web Counter