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

这个是MSDN广播的课程,05年的课程,作者是李建忠先生,今日观看依然有豁然开朗之感。

其中总总知识与思想渐渐能在皮毛上跟上作者的思路。

顾记录下些许笔记,记录点滴。

继寒假时使用思维导图方式记录笔记,今年又发现新的神器Onenote,微软出品的神物,相比与类似的笔记记录软件,微软确是更懂用户。

title="Preview" marginheight="0" marginwidth="0" style="width:98px;height:115px;padding:0;background-color:#fcfcfc;" src="https://skydrive.live.com/embedicon.aspx/C^N%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e8%ae%be%e8%ae%a1%e6%a8%a1%e5%bc%8f%e7%ba%b5%e6%a8%aa%e8%b0%88[%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0]/%e8%ae%be%e8%ae%a1%e6%a8%a1%e5%bc%8f?cid=1800fc5c607b3209&sc=documents" scrolling="no" frameborder="0">

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


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


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

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



课程自上而下,从模式讲到面向对象的设计模式

模式一词来源于建筑学(软件工程的很多最原始的东西都会起源于建筑)

引用了建筑大师亚历山大的模式一词。

简单地说模式就是  

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


这里的设计模式,专指软件设计中的模式,而面向对象设计模式又是设计模式的一个子集

再者,课程中要讲解的GOF23中设计模式只是面向对象设计模式中一些经典的模式。

这个是我一直一来的一个误区,今天算是开了眼界

设计模式不等于面向对象设计模式,GOF的23种面向对象设计模式也不是所有的面向对象设计模式


用作者的话说软件是一条变色龙。

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


面对复杂的变化,首先必须承认的是我们没有任何办法可以规避变化。

但是我们依然有一些方法可以封装变化,提高复用性。我们把他们叫做 好的面向对象设计


我们学习了那么多的书本,叫面向对象程序设计基础,但是我们真的学会了面向对象程序设计了吗?

写了几万行的面向对象程序语言的代码,了解到了面向对象的本质了吗?

三大机制,封装继承多态,这就是面向对象程序设计吗?


我们说

封装     隐藏内部实现

继承     复用现有代码

多态     改写对象行为

但是这些都只是面向对象的皮毛,表象,是面向对象在OOPL(面向对象程序语言)上的实现层面

三大机制本身经没有刻画出面向对象的核心精神

使用面向对象语言 不等于进行面向对象的开发

 面向对象编程语言不是面向对象的全部


让我们重新认识面向对象

宏观:面向对象的构建方式更能适应软件的变法

 

微观:面向对象的方式更强调 类的责任

 

对象是什么

概念 = 某种拥有职责的抽象

规格 = 一系列可以被其他对象使用的公共结构

语言 = 封装了代码和数据()

 

好的面向对象

循序一定设计原则

熟悉典型的设计模型


三大原则

针对接口编程,而不是针对实现编程

优先使用对象组合,而不是类继承

封装变化点



还有更具体的一些原则包括

单一职责原则

开放封闭原则

Liskov替换原则

依赖倒置原则

接口隔离原则


-------------------------------------------------------------------------------------------

接下来一些东西其实是第二节课的内容,但是我感觉把它放到这个章比较好

模式分类

按目的分类

创建型(Creation) 负责对象创建

结构型(Structural)   处理类与对象间的组合

行为型(Behavioral)类与对象交互中的职责分配




这份博客真的写得不怎么样,感觉很差。下次努力改进


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值