面向对象,你真的会了吗?

 

  1. OOP?我会!

    OOAD?我懂!

    UML?知道!

    RUP?XP?接触过!

    如果问任何一个开发人员,尤其是java开发人员,大抵会得到这样的答复。但是,面向对象,我们真的懂了吗?本文试图阐述面向对象最基本的原理,方法,观点;以及面向对象的软件过程中应该具有的环节和注意事项。

  2. 写作动机及意见征集

    其实我们在学习分析和设计的时候,都经历过思想转变的过程。这种过程是潜移默化的,没有听说过有人能够“顿悟”。但是当我们想清楚了之后,又觉得这一切是那么“理所当然”。所以当我们想把经验传承给别人的时候,感觉很难说清楚。本文试图能够从面向对象最基本的原理入手,用尽量平白的方式,把软件分析和设计中的一些经验表达出来。

    比如,我遇到的典型对话,我感觉回答得很不好,没有把问题说清楚:

    ————————————————————————————————————————————————

    【问】:对于面向对象来说,封装继承多态很重要吗?

    【答】:这些都是手段和方法,在需要时就有用。需要学习的是思想。

    【问】:思想?

    【答】:思想,呵呵,就是想问题的方式。

    【问】:怎么学习到面向对象的思想?

    【答】:思想,不是用来学地,是用来领悟地。你能学到的是方法,很多种方法;但是遇到一个特定的问题,你采用哪种方法,为什么采用这种方法,这就是你的想法,你的思想。比如,java编程思想中介绍的无非是一些方法,但是你把他们掌握了并能灵活运用,就成了你的思想。

    ————————————————————————————————————————————————

    【问】:接口的确应该是在实现前定下的,没这种习惯。我以前只是把接口当作一种连接的标准。

    【答】:说白了,就是要用对象的眼光看系统。其实说你做东西前没有设计是冤枉你,你肯定想过了才开始做,但你是按照什么思路想的呢?面向对象不一定是最好的,但是既然你的代码要按照“类”来写,那么你设计的时候就要遵从这个思路和方法。

    【问】:你别说我也觉得跟没设计一样。

    【答】:呵呵,这是习惯了边做边想,其实我也有这个阶段,那时候让我一开始就想也想不明白;多积累经验,慢慢就好了。

    【问】:慢慢来吧,这事还真急不了。现在对这个设计有点兴奋得感觉,呵呵。就是有浓厚的兴趣。

    【答】:兴趣是最好的老师。关键是要多想。

    ————————————————————————————————————————————————

    【问】:我现在研究一下设计模式早吗?

    【答】:早了点,应该先把面向对象理解得再透彻点。其实模式的本质是对象之间的关系。首先把对象想清楚,才能学习模式。

    ————————————————————————————————————————————————

    开这个题目的时候,自己感觉非常困难。这个题目涉及到的东西相当多,而且个人的水平实在有限,所以希望大家能够多提出意见和建议,我们一起把这件事情做好。这里先列出一个提纲:

  3. 面向对象 vs 面向过程。

    由于我们在学校中学习的教材多数是面向过程的(不知道现在还是不是这样?),所以想首先说明面向对象和面向过程的区别与联系,是读者在面向过程的基础上对面向对象有一个总体上的认识。

  4. 需求过程与OOA。

    其实需求过程本身就是一个很负责的问题,这里想讲的是如何以面向对象的方式来看待需求。以及,分析的套路——分析模式。

  5. 设计模式OOD。

    现在很多人谈设计必提模式,其实大可不必。23种设计模式只是很小的一部分,模式有很多。但是设计的原则只有很少的几条,所有的设计模式都能用设计原则来解释。这部分想讲讲最基本的原则,及其相关的典型设计模式。

  6. OOP基础。

    其实对大多数人,编程并不是问题,而且如果设计真的到位了,这里就只剩下实现了。所以是不是要写这部分,还有待考虑。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值