1 / 17

面向对象与设计模式

面向对象与设计模式. 张 鹏 @ Sina RD 2011.1.10. 常见编程范式介绍 并行编程 - Process-oriented 组件编程 - Component-based 事件驱动 - Service- oriented , Time -driven 表达式编程 – 表达式驱动 Lisp 结构化编程 面向对象 模块化编程 递归. 什么是面向过程? #include &lt; stdio.h &gt; int main( int argc , char * argv []) { printf (&quot;Hello, world<br>&quot;);

Download Presentation

面向对象与设计模式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 面向对象与设计模式 张鹏@Sina RD 2011.1.10

  2. 常见编程范式介绍 • 并行编程 - Process-oriented • 组件编程 - Component-based • 事件驱动 - Service-oriented,Time-driven • 表达式编程 – 表达式驱动 Lisp • 结构化编程 • 面向对象 • 模块化编程 • 递归

  3. 什么是面向过程? #include <stdio.h> int main(intargc, char *argv[]) { printf("Hello, world\n"); return 0; } 结构化,共享数据,简单

  4. 什么是面向对象 class { public static void main(String[] args) { System.out.println("Hello World!"); } public void ICanBark() { System.out.println(“Hey,Ican bark!"); } } 程序语言,完成了现实世界和虚拟环境的映射,语言的作用在于抽象, 表达/描述,进而解决问题。

  5. 面向对象特点 Class 实例 方法 消息传递 抽象 封装 继承 多态 松耦合 面向对象和面向过程,本质是一样的,光既是波,也是粒。面向对象最基础的部分,仍旧是面向过程的实现。

  6. 面向对象与程序员 • 披着JAVA外衣的C程序员 • SSH 程序员 ,Framework kids • 披着C++外衣的C程序员 • 纯C程序员 • 纯C++/JAVA程序员 不要被程序员的语言技能迷惑,要看透他们本质

  7. 面向对象的衍生问题 • 面向对象,试图用一种具体化的抽象,来描述现实世界的实体,实体之间的关系。这种方式,给语言和程序员,带来了沉重的负担。 • 对象生命周期管理成为big trouble • 组件之间的交互,成为大问题 • IOC 解决了上述问题 • 框架和引擎,依托于面向对象而生 • 设计模式 世界上没有任何一种语言,像C++一样对程序员脑力的剥削,持续的时间这么长,剥削的深度这么深

  8. 面向对象与设计模式 • JAVA语言对软件界的贡献 • 设计模式 Gang of Four 

  9. Real Gang of Four

  10. 什么人需要了解设计模式 • 需要在Framework下面写代码,或者写一个框架 • 想成为真正的OO程序员 • 想自我剥削,更深刻的理解这个世界,用更抽象复杂的方式描述这个世界 • 脱离菜鸟的队伍 • 想成为软件构架师 • 想看懂国外的开源代码 • 以上都不想,只想写好WEB程序,或者GUI程序 SBD saids: 设计模式只涉及方法论,与语言人品无关

  11. Singleton 设计模式 • 面向对象,有instance , object • 大量的对象产生,要把容器撑爆,很难管理 • 面试时候,一些学院派的考官,经常问这个问题 • 本质上,我们需要对象生命周期管理 • 其实,你只需要1个对象

  12. 一个Singleton的例子 public class IAmSingle { private static iInstance=new IAmSingle(); private IAmSingle {} public IAmSinglegetInstance() { return iInstance; } } Yep, Safe and simple

  13. Web程序员,GUI程序员的最爱MVC

  14. MVC说,我不是设计模式 严格意义来讲,MVC不是一个设计模式,而是多种设计模式的混合体

  15. View通过策略模式,把用户动作代理给controller执行View通过策略模式,把用户动作代理给controller执行

  16. View,controller都订阅了Model的状态变化,这样又是一个Observer模式View,controller都订阅了Model的状态变化,这样又是一个Observer模式

  17. Thanks, 讨论一下 设计模式就像葵花宝典,但仍旧不是武术的最高境界,我们要把它变成易筋经。可以Fellow ,不能盲从…

More Related