[笔记]00面向对象设计模式与原则
2011-07-10 22:32
483 查看
这个是MSDN广播的课程,05年的课程,作者是李建忠先生,今日观看依然有豁然开朗之感。
其中总总知识与思想渐渐能在皮毛上跟上作者的思路。
顾记录下些许笔记,记录点滴。
继寒假时使用思维导图方式记录笔记,今年又发现新的神器Onenote,微软出品的神物,相比与类似的笔记记录软件,微软确是更懂用户。
笔记放于网上,天天会更新。
第一天的课程介绍面向对象的设计模式
对于学习设计模式的目标应该是,能灵活熟练的使用模式
不能灵活应用某个模式 = 不懂(没学过)这个模式
课程自上而下,从模式讲到面向对象的设计模式
模式一词来源于建筑学(软件工程的很多最原始的东西都会起源于建筑)
引用了建筑大师亚历山大的模式一词。
简单地说模式就是
针对不断重复出现的问题提出一般性的解决方案
这里的设计模式,专指软件设计中的模式,而面向对象设计模式又是设计模式的一个子集
再者,课程中要讲解的GOF23中设计模式只是面向对象设计模式中一些经典的模式。
这个是我一直一来的一个误区,今天算是开了眼界
设计模式不等于面向对象设计模式,GOF的23种面向对象设计模式也不是所有的面向对象设计模式
用作者的话说软件是一条变色龙。
它在不断的改变,人们曾经一直想讲软件开发工程化。为次做出了很多努力,创造了很多理论,也取得了一些成就。但是也许就像《没有银弹》那片文章写得那样“没有任何一项技术或方法可使软件工程的生产力在十年内提高十倍”。
面对复杂的变化,首先必须承认的是我们没有任何办法可以规避变化。
但是我们依然有一些方法可以封装变化,提高复用性。我们把他们叫做 好的面向对象设计
我们学习了那么多的书本,叫面向对象程序设计基础,但是我们真的学会了面向对象程序设计了吗?
写了几万行的面向对象程序语言的代码,了解到了面向对象的本质了吗?
三大机制,封装继承多态,这就是面向对象程序设计吗?
我们说
封装 隐藏内部实现
继承 复用现有代码
多态 改写对象行为
但是这些都只是面向对象的皮毛,表象,是面向对象在OOPL(面向对象程序语言)上的实现层面
三大机制本身经没有刻画出面向对象的核心精神
使用面向对象语言 不等于进行面向对象的开发
面向对象编程语言不是面向对象的全部
让我们重新认识面向对象
宏观:面向对象的构建方式更能适应软件的变法 微观:面向对象的方式更强调 类的责任 对象是什么概念 = 某种拥有职责的抽象规格 = 一系列可以被其他对象使用的公共结构语言 = 封装了代码和数据() 好的面向对象循序一定设计原则熟悉典型的设计模型
三大原则
针对接口编程,而不是针对实现编程
优先使用对象组合,而不是类继承
封装变化点
还有更具体的一些原则包括
单一职责原则开放封闭原则Liskov替换原则依赖倒置原则接口隔离原则
-------------------------------------------------------------------------------------------接下来一些东西其实是第二节课的内容,但是我感觉把它放到这个章比较好模式分类按目的分类
创建型(Creation) 负责对象创建
结构型(Structural) 处理类与对象间的组合
行为型(Behavioral)类与对象交互中的职责分配
这份博客真的写得不怎么样,感觉很差。下次努力改进
其中总总知识与思想渐渐能在皮毛上跟上作者的思路。
顾记录下些许笔记,记录点滴。
继寒假时使用思维导图方式记录笔记,今年又发现新的神器Onenote,微软出品的神物,相比与类似的笔记记录软件,微软确是更懂用户。
笔记放于网上,天天会更新。
第一天的课程介绍面向对象的设计模式
对于学习设计模式的目标应该是,能灵活熟练的使用模式
不能灵活应用某个模式 = 不懂(没学过)这个模式
课程自上而下,从模式讲到面向对象的设计模式
模式一词来源于建筑学(软件工程的很多最原始的东西都会起源于建筑)
引用了建筑大师亚历山大的模式一词。
简单地说模式就是
针对不断重复出现的问题提出一般性的解决方案
这里的设计模式,专指软件设计中的模式,而面向对象设计模式又是设计模式的一个子集
再者,课程中要讲解的GOF23中设计模式只是面向对象设计模式中一些经典的模式。
这个是我一直一来的一个误区,今天算是开了眼界
设计模式不等于面向对象设计模式,GOF的23种面向对象设计模式也不是所有的面向对象设计模式
用作者的话说软件是一条变色龙。
它在不断的改变,人们曾经一直想讲软件开发工程化。为次做出了很多努力,创造了很多理论,也取得了一些成就。但是也许就像《没有银弹》那片文章写得那样“没有任何一项技术或方法可使软件工程的生产力在十年内提高十倍”。
面对复杂的变化,首先必须承认的是我们没有任何办法可以规避变化。
但是我们依然有一些方法可以封装变化,提高复用性。我们把他们叫做 好的面向对象设计
我们学习了那么多的书本,叫面向对象程序设计基础,但是我们真的学会了面向对象程序设计了吗?
写了几万行的面向对象程序语言的代码,了解到了面向对象的本质了吗?
三大机制,封装继承多态,这就是面向对象程序设计吗?
我们说
封装 隐藏内部实现
继承 复用现有代码
多态 改写对象行为
但是这些都只是面向对象的皮毛,表象,是面向对象在OOPL(面向对象程序语言)上的实现层面
三大机制本身经没有刻画出面向对象的核心精神
使用面向对象语言 不等于进行面向对象的开发
面向对象编程语言不是面向对象的全部
让我们重新认识面向对象
宏观:面向对象的构建方式更能适应软件的变法 微观:面向对象的方式更强调 类的责任 对象是什么概念 = 某种拥有职责的抽象规格 = 一系列可以被其他对象使用的公共结构语言 = 封装了代码和数据() 好的面向对象循序一定设计原则熟悉典型的设计模型
三大原则
针对接口编程,而不是针对实现编程
优先使用对象组合,而不是类继承
封装变化点
还有更具体的一些原则包括
单一职责原则开放封闭原则Liskov替换原则依赖倒置原则接口隔离原则
-------------------------------------------------------------------------------------------接下来一些东西其实是第二节课的内容,但是我感觉把它放到这个章比较好模式分类按目的分类
创建型(Creation) 负责对象创建
结构型(Structural) 处理类与对象间的组合
行为型(Behavioral)类与对象交互中的职责分配
这份博客真的写得不怎么样,感觉很差。下次努力改进
相关文章推荐
- [笔记]00面向对象设计模式与原则
- 设计模式之禅笔记--面向对象设计六大原则之一
- 设计模式笔记 1. 面向对象设计模式与原则
- 设计模式C++学习笔记之二十(完结篇 & 面向对象原则)设计模式C++实例下载
- C#面向对象设计模式纵横谈 学习笔记1 面向对象设计模式与原则
- 面向对象设计模式纵横谈:面向对象设计模式与原则(笔记记录)
- 设计模式笔记 0.面向对象设计模式与原则
- CSharp面向对象设计模式纵横谈--面向对象设计模式与原则 听课笔记
- C#面向对象设计模式纵横谈(1):面向对象设计模式与原则 笔记
- 设计模式笔记 0.面向对象设计模式与原则
- 【我的Java笔记】Java面向对象思想设计原则及常见设计模式
- 面向对象设计与模式与原则--面向对象设计模式纵横谈讲座笔记之一
- java设计模式学习笔记--面向对象设计原则
- C#面向对象设计模式纵横谈 笔记1. 面向对象设计模式与原则
- 【JAVA设计模式-第一课】面向对象特性及原则回顾
- [导入]C#面向对象设计模式纵横谈(1):面向对象设计模式与原则.zip(9.66 MB)
- 面向对象设计模式与原则
- C#面向对象设计模式纵横谈 面向对象设计模式与原则
- 面向对象原则的要点知识与设计模式
- [整理]C#面向对象设计模式纵横谈(1):面向对象设计模式与原则