向对象的思维方式

      面向对象是围绕对象和类来分析、设计软件系统的。

      面向对象分析:
      面向对象分析的主要任务是根基用户的需求,建立一个准确的、完整的、一致的系统模型。在面向对象的分析过程里,项目组通过分析软件的功能性需求,得到一个理想化的系统模型,该模型更多的侧重于描述我们需求解决的问题是什么---我们称这种模型为分析模型。

       面向对象分析与面向对象设计的区别:
      1、在侧重点上,面向对象分析侧重于理解问题,描述软件做什么,而面向对象设计侧重于理解解决方案,描述软件如何做。
      2、面向对象分析一般只考虑理想的设计,不关心技术和实现的细节,而面向对象设计更具体、更详细、更接近真实的代码的设计方案。
      3、在设计结果的描述方式上,分析阶段侧重描述对象的行为,设计阶段侧重于描述对象的属性和方法。
      4、面向对象分析只关注功能性需求,而面向对象设计既关注功能性需求,也关注非功能性需求。
      5、面向对象分析的产生的系统模型通常规模较小,而面向对象的设计产生的系统模型规模较大,内容也比较完整、详尽。

       用例驱动的面向对象分析,面向对象分析的过程包括:
      1、从用例中提取实体对象和实体类。  提取实体对象的方法,依据用例描述中出现的名词和名词短语来提取实体对象,必须对原始的名词和名词短语进行筛选。得到实体对象后,对实体对象进行归纳、抽象出实体类。
      2、提取属性
      3、提取关系
      4、添加边界类
      5、添加控制类
      6、绘制类图
      7、绘制顺序图
      8、编制术语表        

      对象分析一般从一个具体用例描述开始,比如:收银员根据顾客选购的商品收费,这个就是一个具体用例。
      首先分析名词:收银员 顾客 商品。
      然后是动作: 计算费用并收费。
      然后是限定: 1、 操作人员(收银员,管理人员,定价人员,会计,仓管人员);2、 商品(普通商品,折扣商品);3、 顾客--普通客户,普通vip客户,大集团客户。
      接着是控制:商品价格控制;顾客类型控制。
      最后是关系: 商品价格由具有该权限的人员管理; 费用由顾客类型决定。

      于是最终设计可能就为: 操作人员类(这里可能是一个工厂类);顾客类(这里也可设计成工厂类);商品类(一个商品可能根据顾客不同而有不同的价格,所以这里可能是个装饰类);费用计算类(限定接口,只允许接收顾客和商品列表两参数,以保证最终调用者始终只有一种调用方式);只是一个简单的分析,为了描述上的简单把实体类和控制类合并了,不过如果是了解设计模式的人估计是看的明白的。

你可能感兴趣的:(向对象的思维方式)