人与OO

转载请注明: http://normalsoft.spaces.live.com/blog/cns!AF8C29F59CAD938E!353.entry

    能将OO与人并列去讲,着实费了我很大的劲。可是经过一段简单的比较,发现两者自己的相同之处确实很多!
   
    我们先将这个比方说出来,假设针对我们OO中的每种对象,对应与社会上每一个人,他们千差万别,但都同时满足一个相同点:对象(人)。
    先来所说OO的三个特性:封装、继承、多态。
    封装,显然人很明显地做到了这点,各种各样能力的人,都讲自己封装在一个尸壳之下。
    继承,呵呵,大家都能看到嘛!男人和女人结合的原因也在于此。不过相对于社会,大家可能忽略另外一种继承:学徒!老师教学生,学生掌握知识,都相当于继承嘛。
    多态,嗯,这个比较难以解释。多态是相对于调用者来说的,也就是说,调用者将所有被调用者等同对待(基类),但实际操作,具体的对象会有自己的实现。呵呵,说起来,我自己都觉得好笑,好像资本家(人)就是喜欢干这种事。他们聚集一帮人,让他们干同一类型的活(分工)。虽然干同样的活,但是这群人中,有人技术能力强,有人天生会偷懒。用社会学讲,多态就是剥削!
   
    好了,戏说了三大特性。咱们再看看OO的几大原则:SRP、OCP、LSP、DIP、ISP。讲这些原则,其实就是讲到有关设计了。对于设计,我们应该有一个认识,原则只是让我们来判断什么时候好的,什么是不好的。不代表其是否存在!
    SRP,单一职责原则。这个很好解释,对于你来讲,或者说对于大部分人来讲,你会认为单纯的人你更愿意接近呢,还是喜欢接近复杂甚至阴暗的人呢?答案不言而喻了吧。所以我们设计正如我们选朋友一样,要尽量简单,坦诚相见。
    OCP,开闭原则。修改一个人的基因是如何地难?改变一个人的习性是如何艰难,要不怎么会有“江山易改,本性难移”的俗语?所以说,改变别人不是一个好的办法。对于改变短处,确实很难,但是,我们扩展别人的长处,却往往事半功倍!这个时候开放的心态也是人在面对变化的时候的制胜法宝。
    LSP,替换原则。这显然是个用人问题。那些大老板们都喜欢任何工作角色都可以被替换,替换的人可以直接顶替原有的人。呵呵。工业化、规模化的发展,难道必然要求这样?
    DIP,依赖倒置原则。这个又是一个组织的艺术。对于一个组织群体,他的整个架构最好是不要依赖于具体的人,而是具有统一性质的人,这就是人的角色概念。依赖于这些角色,可以组织成各种工作流程,最终形成整个组织的构成。
    ISP,接口隔离原则。简单点说就是用人,用的是他的能力。每个人都有他的多面性。而我们在相处的时候,只是关心其一面或几面。父母关心的是其作为子女的一面,妻子关心的是作为丈夫的一面,儿女关心的是作为父亲的一面,老板关心的是作为能力的一面。我们关心都是其对应的角色。
    上面的对比虽然比较牵强,不过还是可以帮助我们理解OO的一些基本知识的。
下面,我们再尝试从人的自然性和社会性来分析OO。当然了,我对社会学不是很了解。所以知道什么说什么了。
    人是有生有灭的。不知道大家有没有考虑过这样的问题,为什么OO中的对象会有构造和析构的过程?是的,人如果都不死,那么地球就死了。就如有一个家伙证明西方僵尸鬼是不可能存在的,就是假设人变成僵尸后不死,那么只要经过两年,地球上所有人都变成僵尸了。而这些僵尸也会因为不能喝到活的人血而全部死亡。呵呵,所以僵尸的不存在恰恰证明了人的死亡的必然性和合理性。
    据说有一个理论,人和人之间要能够认识,只需要3经过三个人。翻翻我们的代码,如果一个类要引用另一个类的话,连接的长度如果太长,你就会发现其设计有问题,一定想找一个捷径直接去访问。于是又会倾向于简短访问的方向平衡。
    其实OO就是人创造的,而所有对象,都是从人的角度去理解的。往往很多都带有人本身的特性在上面,所以必然又很多痕迹可以追寻。本文只是一个尝试,目的也只是更好的理解OO。理解我们的设计。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值