您的位置:首页 > 其它

[笔记]00面向对象设计模式与原则

2011-07-10 22:32 483 查看
这个是MSDN广播的课程,05年的课程,作者是李建忠先生,今日观看依然有豁然开朗之感。
其中总总知识与思想渐渐能在皮毛上跟上作者的思路。
顾记录下些许笔记,记录点滴。
继寒假时使用思维导图方式记录笔记,今年又发现新的神器Onenote,微软出品的神物,相比与类似的笔记记录软件,微软确是更懂用户。

笔记放于网上,天天会更新。

第一天的课程介绍面向对象的设计模式

对于学习设计模式的目标应该是,能灵活熟练的使用模式

不能灵活应用某个模式 = 不懂(没学过)这个模式

课程自上而下,从模式讲到面向对象的设计模式
模式一词来源于建筑学(软件工程的很多最原始的东西都会起源于建筑)
引用了建筑大师亚历山大的模式一词。
简单地说模式就是

针对不断重复出现的问题提出一般性的解决方案

这里的设计模式,专指软件设计中的模式,而面向对象设计模式又是设计模式的一个子集
再者,课程中要讲解的GOF23中设计模式只是面向对象设计模式中一些经典的模式。
这个是我一直一来的一个误区,今天算是开了眼界
设计模式不等于面向对象设计模式,GOF的23种面向对象设计模式也不是所有的面向对象设计模式

用作者的话说软件是一条变色龙。
它在不断的改变,人们曾经一直想讲软件开发工程化。为次做出了很多努力,创造了很多理论,也取得了一些成就。但是也许就像《没有银弹》那片文章写得那样“没有任何一项技术或方法可使软件工程的生产力在十年内提高十倍”。

面对复杂的变化,首先必须承认的是我们没有任何办法可以规避变化。
但是我们依然有一些方法可以封装变化,提高复用性。我们把他们叫做 好的面向对象设计

我们学习了那么多的书本,叫面向对象程序设计基础,但是我们真的学会了面向对象程序设计了吗?
写了几万行的面向对象程序语言的代码,了解到了面向对象的本质了吗?
三大机制,封装继承多态,这就是面向对象程序设计吗?

我们说

封装 隐藏内部实现
继承 复用现有代码
多态 改写对象行为
但是这些都只是面向对象的皮毛,表象,是面向对象在OOPL(面向对象程序语言)上的实现层面

三大机制本身经没有刻画出面向对象的核心精神
使用面向对象语言 不等于进行面向对象的开发
面向对象编程语言不是面向对象的全部

让我们重新认识面向对象

宏观:面向对象的构建方式更能适应软件的变法 微观:面向对象的方式更强调 类的责任 对象是什么概念 = 某种拥有职责的抽象规格 = 一系列可以被其他对象使用的公共结构语言 = 封装了代码和数据() 好的面向对象循序一定设计原则熟悉典型的设计模型
三大原则

针对接口编程,而不是针对实现编程
优先使用对象组合,而不是类继承
封装变化点

还有更具体的一些原则包括
单一职责原则开放封闭原则Liskov替换原则依赖倒置原则接口隔离原则
-------------------------------------------------------------------------------------------接下来一些东西其实是第二节课的内容,但是我感觉把它放到这个章比较好模式分类按目的分类
创建型(Creation) 负责对象创建
结构型(Structural) 处理类与对象间的组合
行为型(Behavioral)类与对象交互中的职责分配

这份博客真的写得不怎么样,感觉很差。下次努力改进
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: