也乱弹Book.Save而引OO对话
这几天博客园热闹的几乎是OO讨论.我在这里不会详细解说何为OO.因为我对OO的概念也是一层薄纸,只要随便一捅就很容易穿的……
而我写此随笔主要是我刚看了亚历山大同志的“谈谈book.Save()到底OO还是不够OO ”,下面引用作者的几句话:
看来作者对Book.Save()方法是否OO的决定因素则是此方法在哪个行为层出现,这里类似把Book.Save给适配隐藏一下就是OO了,是否正确我不评论,我再引用一下两个人的评论:
这里重点的则STS的评论,编程界为什么会出现OO?这是因为程序员想借用OO在程序里来描述一个真实的现实世界。而亚历山大同志的那个Book.Save例子则似乎只是一个数据进库的动作而已,这里为什么却要与OO拉上关系呢?而如果真的想用来描述现实,那也许亚历山大同志的本意则可能是某个用户将某本书入库了,那这样看来行为者则是用户而非书本,但为什么却将书本变为行为者了呢?
下面再谈谈dali的评论,第一个则只是一个包装,类似于亚历山大同志说的将Book.Save方法放于User类去调用一样,第二个-1.Abs()则是用于描述现实世界,因为-1可以看成是自然界里的某个物体,所以它拥有自己的特性动作,这也就是为什么Ruby称自己是“一个真正的面向对象的语言”原因……
2007年09月21日13:43分添注:
看了评论,却发现各位还继续停留在book.save这个方法里,在这里我说明一下,我发这文章的本意是:当想用OO描述某个动作时必须区别哪个才是真正的行为者,这才是真正的OO想表达的(注意红色部分,书本不可能有自己入库的能力这是大家都所知道的事实,所以Save(入库)方法在书本本身出现则是不太现实的,这也就是我为什么引用STS的评论原因,他的那句话才是重点。)
2007年09月21日18:30分添注:
本来不想讨论book.save对与否的.但看到评论基本都还是围绕着这个,那我将我在亚历山大同志那里回复说的例子转过来吧,希望大家能明白我这里真正想说是要区分对象的"行为者"是谁,才是OO想表达的东西..
而我写此随笔主要是我刚看了亚历山大同志的“谈谈book.Save()到底OO还是不够OO ”,下面引用作者的几句话:
如果是EditBook.aspx.cs中出现了book.Save()那么我觉得是不符合OO设计的思想的,因为保存书的行为确实不是书本身发出的。但是,如果有一个用户类User,在User里有个UpdateBook的方法,在这个方法里出现了book.Save(),那么我认为这是很OO的 |
看来作者对Book.Save()方法是否OO的决定因素则是此方法在哪个行为层出现,这里类似把Book.Save给适配隐藏一下就是OO了,是否正确我不评论,我再引用一下两个人的评论:
# re: 谈谈book.Save()到底OO还是不够OO 2007-09-19 20:54 STSbook.Save是什么意思, 是把編程里的數據保存了, 還是描述現實中把書放回書架?? |
# re: 谈谈book.Save()到底OO还是不够OO 2007-09-20 09:37 dali你们觉得是 |
这里重点的则STS的评论,编程界为什么会出现OO?这是因为程序员想借用OO在程序里来描述一个真实的现实世界。而亚历山大同志的那个Book.Save例子则似乎只是一个数据进库的动作而已,这里为什么却要与OO拉上关系呢?而如果真的想用来描述现实,那也许亚历山大同志的本意则可能是某个用户将某本书入库了,那这样看来行为者则是用户而非书本,但为什么却将书本变为行为者了呢?
下面再谈谈dali的评论,第一个则只是一个包装,类似于亚历山大同志说的将Book.Save方法放于User类去调用一样,第二个-1.Abs()则是用于描述现实世界,因为-1可以看成是自然界里的某个物体,所以它拥有自己的特性动作,这也就是为什么Ruby称自己是“一个真正的面向对象的语言”原因……
2007年09月21日13:43分添注:
看了评论,却发现各位还继续停留在book.save这个方法里,在这里我说明一下,我发这文章的本意是:当想用OO描述某个动作时必须区别哪个才是真正的行为者,这才是真正的OO想表达的(注意红色部分,书本不可能有自己入库的能力这是大家都所知道的事实,所以Save(入库)方法在书本本身出现则是不太现实的,这也就是我为什么引用STS的评论原因,他的那句话才是重点。)
2007年09月21日18:30分添注:
本来不想讨论book.save对与否的.但看到评论基本都还是围绕着这个,那我将我在亚历山大同志那里回复说的例子转过来吧,希望大家能明白我这里真正想说是要区分对象的"行为者"是谁,才是OO想表达的东西..
# re: 又见手把手系列-面向对象扫盲-通俗的OO第一弹-【封装】 2007-09-21 18:22 Kingthy观点同@老翅寒暑 |