您的位置:首页 > 其它

面向对象从接触到入门

2016-05-05 14:08 267 查看
文章将分四部分讨论
[b]1 我们的问题
[/b]
2 什么时候及为什么看设计模式
3 设计模式讲的什么
4 通过Java入门

[b]1 我们的问题[/b]

也许在迈入编程神秘世界之前,我们都在纠结从C语言的结构化编程开始呢还是直接投入OO的怀抱。
可能你跟我一样也听说了,习惯了一种思路就很难开始转到另一种。或许你会这样,想了又想,昂扬的翻开了一本Java或者C++程序设计大部头的书本,然后陷落到封装、继承、多态的海洋中。书翻了一页又一页,一个章节看完了接着下一个章节。最后我说,咱们来搞点什么吧,可是谁也不知道从哪里下手。
一个程序是被怎么设计出来的?为什么我看了很多的编程语言还是学不会设计?为什么说ctrl+c,ctrl+v很失败,我觉得也挺好呀?从大一开始学习C++,Java也写了毕业到现在,为什么提起OO,仍旧是嘴里面向对象的三大特征,再之后就什么都说不出来了?
别意外,这些问题都是好长一段时间,同样也困扰了我很久,直到现在。
我想一下,在这之前我是怎么写代码的呢。
想清楚这一步骤要做什么,然后需要几个函数处理,从类似地地方将一大块代码copy过来,然后修改。是了,问题就这样解决了,哈哈哈哈,我很厉害哦。实际上,这就是过程化编程。
这个时候我们这样设计一个程序:把需求理解成一条一条的业务流程,然后把流程组合交织成一块,然后划分为一个有一个模块,最终又通过函数,实现了需求。这时候,或者会想到unix编程艺术强调的模块化编程,心里带着点小得意,同时也有点困惑,却不知道问题出在哪里。

2 什么时候及为什么看设计模式
直到我开始看了《大话设计模式》。辞职这段时间,逐渐看完了设计模式,对整本书,我理解吸收的也许很少,但总感觉是打开了一扇门。
书里面有一句话:没有学过设计模式,那么对于多态乃至面向对象的理解多半是肤浅和片面的。之前我很多次打开设计模式,总觉得过于枯燥,还是无从下手,我想如果你完整的看完了一本面向对象的设计语言的书,这个时候就勇敢的打开设计模式吧,不要说设计模式是一个很神秘的东西,需要写多少行代码才可以学习一类。
程序员思维修炼有提到一个德雷福斯模型



所谓的设计模式就是这样的一份指令清单,告诉你什么样的设计是好的设计,应该如何使用好一门面向对象的语言。看完了设计模式,思维才有了着地点,才会摆脱过程化变成拷贝粘贴的漩涡。不要以为设计模式是终点,读完了设计模式,才刚刚上路呢。所以,我说就勇敢的开始吧。

3 设计模式讲的什么

设计模式讲的什么?六大设计原则,一句话:
封闭-开放:已经写好代码,对于修改封闭,扩展开放
单一职责:一个类只负责一项功能,
迪米特法则:如果两个类不必直接通信,那就不应该发生直接的相互关系
依赖倒转:针对接口编程,不要针对实现编程
里式代换:父类都能被子类替换
接口隔离:一个类要实现的接口中不应该包含他不需要的方法



然后就是由六大设计原则得出的23中设计模式:
创建型:研究对象的创建。

  
工厂方法模式,抽象工厂模式,单例模式,建造者模式:原型模式
结构型:研究对象的组成及其依赖关系。
  模板方法模式(Template Method);观察者模式(Observer);状态模式(State);策略模式(Strategy);职责链模式(Chain of Responsibility);命令模式(Command);访问者模式(Visitor);调停者模式(Mediator);备忘录模式(Memento);迭代器模式(Iterator);解释器模式(Interpreter)。

行为型:描述对象或类的模式及通信方式
  模板方法模式(Template Method);观察者模式(Observer);状态模式(State);策略模式(Strategy);职责链模式(Chain of Responsibility);命令模式(Command);访问者模式(Visitor);调停者模式(Mediator);备忘录模式(Memento);迭代器模式(Iterator);解释器模式(Interpreter)。

4 面向对象通过Java入门

我建议的路线路线:
1 完整的看完一遍 《think in java》,书能从头看到尾 。过一边,了解Java可以做到什么事情。
2 回过头复习重点:
初始化与清理章节:了解堆、栈,垃圾回收。
持有对象:容器分类



各种容器具体特性及选择



泛型及容器深入研究
多线程处理 并发
3 学习设计原则及设计模式
这一步后或许就会觉得自己像是合格的新手了。

与大家共勉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: