灯火阑珊

纷扰城市中,似乎遗忘这城市的美;繁杂世事中似乎遗忘最初的悸动。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

   个人觉得《道法自然》这本书很不错,他可以让对于写代码游刃有余得人们回到软件设计最根本的理念上来,用青原禅师的话来说就是让你“见山不是山,见水不是水”,当然我们的目的不是这个,我们的目的是“山非山而山,水非水而水”。
   以后这个看书笔记会是一个系列,之所以写这个系列的看书笔记,是想把一些琐碎的片段整理起来,便于查证复习,另一方面也可以方便大家的学习,借鉴或者讨论和批评。

一. 关于设计模式:

 1.青原惟信禅师的三种境界,个人觉得与王国维得三种境界有异曲同工之妙:
         1). 见山是山,见水是水
         2). 见山不是山,见水不是水
         3). 山非山而山,水非水而水

         精辟的总结:说山者滞山。

2.设计模式中的原则和理念

         1.设计模式的根本意图是适应需求变化

         2.针对接口编程,而非针对实现编程

         3.优先使用聚合而不是继承

 二. 面向过程与面向对象的区别:

突然觉得面向过程和面向对象的关系可以用企业发展模式来解释,一个企业在自己的业务规模不是特别大的时候,管理者总是希望把公司所有的日常业务进行一个统一的调配和管理,即做统筹管理,但是当企业发展之后,这时做统筹管理已经不能满足业务需求,于是产生了部门,当企业的规模再次扩大时,原来的企业部门已经不能应付新的业务需求了,于是产生了分公司。

上边说到的统筹管理就相当于面向过程,眉毛胡子一把抓;部门就相当于面向对象,已经有了明确的分工;而分公司则相当于面向服务,这是更高层次上的分工协作,即现在的SOA。

三. 面向对象分析:

1.      面向对象分析的核心内容是:找到软件系统中的实体类和软件类,确定类或对象间的关系。

2.      面向对象分析的主要任务时根据用户需求,建立一个准确的,完整的,一致的系统模型,我们称它们为分析模型,这些模型描述我们需要解决的问题是什么。分析模型包括功能模型(即用例模型),对象模型(是系统的静态模型,和动态模型相对),动态模型。

3.      一般来说,每个对象都是数据和相关操作的集合,数据代表对象的状态,操作代表对象对内外环境变换的反应方式。

4.      面向对象分析和面向对象设计的区别:

a)     面向对象分析侧重于理解问题,描述软件做什么;面向对象设计侧重于理解解决方案,描述软件怎么做。

b)    面向对象分析只考虑理想的设计,不考虑技术和实现层面的细节;而面向对象设计需要考虑更详细,更具体,更接近真实代码的设计方案。

c)     面向对象分析阶段侧重于描述对象的行为;而面向对象设计阶段侧重于描述对象的属性和方法。

d)    现象对象分析只关注功能性需求;面向对象设计既关注功能性需求又关注非功能需求。

e)     面向对象分析产生的模型较小;而面向对象设计产生的模型规模较大,内容也比较完整详尽。

posted on 2006-12-21 09:36  灯火阑珊  阅读(736)  评论(2编辑  收藏  举报