Klesh.Cn

concentrating on knowing more...

噢,这就是封装啊?!

    其实本人完全不太明白什么是OO,而且现实中做的东西也不是很OO.刚才拜读完亚历山大同志《又见手把手系列-面向对象扫盲-通俗的OO第一弹-【封装】》 深感茅塞顿开,终于大约地知道一点点啥是OO,亚历山大同志在文中有提到:

    "最近针对OO有了太多的讨论,太多的误会,太多的不理解。让我来一次性解决什么是对象.."

    显然是对OO超越常人的真知灼见,只是在下对于兄台后面实例的解释有几处非常困惑的地方,不知大家可否探讨一下?

    一.兄台提到,当A君向B君借钱的例子实在太精彩了.鄙人表示十万分的赞同.对于"我们给Man类增加一个Lend的方法,以封装在借出钱的时候对自身状态的改变。然后借钱的行为也要更改了。"这个实在太精彩了!但是,不知这个跟持久化有何关系呢?难道持久化改变了什么属性吗?数据库抢了某个人的钱吗?

    二.BookManager读取Book的属性就是破坏了封装性的原则这个就更加有趣了,那么别的对象什么的读取Book的属性又是不是破坏了封装性的原则?困惑啊,我相当地困惑.对照上面的例子我冥想苦想,终于恍然大悟,认为兄台所说的读取Book属性是指读取"私有的"属性吧.可是,这又不对啊.据我所知的,就比如说NH吧.虽然我不敢确定它只会读"公开的"属性,但它只会读取配置文件指定的属性.你不会故意在配置文件指定它去读取"私有的"属性吧?

    三.那我们先假定你说的是完全正确的真理,那么,不妨给我再上上课,这个book要缓存到缓存里,还有序列化到磁盘里的话,应该要怎么设计,究竟保存到缓存,保存到磁盘和持久化有什么不同值得把持久化耦合到book里面去?

    期待亚历山大兄的再次扫盲!

posted on 2007-09-22 10:12  Klesh Wong  阅读(2757)  评论(47编辑  收藏  举报

导航