面向对象和面向过程是两种不同描述世界的方法。
面向过程:世界视为过程,世界由一个个相互关联的小程序构建来的,是精密的。
但是构成一个系统的因素太多,要把所有可能的因素都考虑到,把所有因素的因果分析都分析清楚,再把这个过程模拟出来实在是太困难了。
面向对象:世界视为对象,世界由一个个相互独立、相互之间没有因果关系的对象构成,是独立的。
但是难点在于为什么这样抽象对象?怎样组合对象?对象的组合表达了怎样的含义?(面向对象存在的问题why how what )
例如:把大象装进冰箱的两种方式
面向过程-每个过程有一个阶段性的目标,依次完成这些过程,就能把大象装进冰箱:
冰箱开门(打开门的冰箱)
冰箱装进(冰箱, 大象)
冰箱关门(冰箱)
面向对象-依次做这些动作(动作的执行者就是对象),就能把大象装进冰箱
冰箱.开门(),
冰箱.装进(大象.进冰箱),
冰箱.关门()
面向对象是把世界看作是由许多对象组成的,UML是一种是面向对象软件的标准化建模语言:
- 把现实世界映射到对象世界的方法;
- 从对象世描述现实世界的方法;
- 验证对象世界行为是否正确反映了现实世界的方法;
UML优点:可视化、统一标准、人和机器皆可理解;
UML建模要素:参与者(actor)、用例(use case)、业务对象模型 、业务场景(现实:人驱动,事体现过程,物记录结果,规则是控制)
模型为参与者服务,用例体现业务目标,业务场景描述怎么做,用例场景依据的规则
现实世界-》业务模型-》概念模型-》设计模型
UML基本概念
建模(Modeling)-构成一种对所观察的对象的内部结构和工作原理的便于理解的表达
怎么建?做需求的时候,首要目标不是要弄清楚业务是如何一步一步完成的,而是要弄清楚有多少业务的参与者?找出问题领域里包含的抽象角度,每个参与者的目标就是抽象角度,也就是用例
什么是模?静态的事情(物)+特定的条件(规则)+特定的动作(参与者的驱动)=特定的场景(事件)(人、事、物、规则)。
建模公式