什么是结构化分析和面向对象分析,比较一下两者的异同
结构化分析:
今天我要去买一件衣服
我准备好钱,确认好目的地,出发时间
我开始出发,然后我下楼,找计程车
我等计程车来到我的面前,我上车
我告诉司机,去XX商场
司机送我到了商场,我下车,进入商场
我在商场里分辨出我要买衣服所在的区域,上前,挑选衣服
我拿起衣服去埋单
出门,找计程车
我上计程车,让他送我回家
面向对象分析:
我今天要买一件衣服
我需要钱,需要目的地,我需要计程车,需要大概知道商场的区域,知道买衣服的流程
钱和目的地这种东西很小事,可以随时准备好
计程车是个专门的类别,它应该具有开车的功能,每个计程车除了去的目的地不同,其他都一样
商场是个专门的类别,它具有自身独特的属性-商品区域
衣服也是个另外的类别,它居然有一些属性比如颜色,尺寸,长短袖,款式等等
好了,一切都安排好了,现在我们手头上有几个部门:
1.我,包括钱,目的地
2.出租车,它会开车,我只要告诉它目的地 他就会自己开
3.商场,谁去都可以,反正它和任何事情无关
4,衣服.谁买谁看都可以.
我去买衣服,把它们组合在一起.
上面2种的区别
结构化分析:1-10步环环相扣,万一出错你得全部找一次,而且可能一个改动则后面全都改了
面向对象分析:出租车,商场,衣服,我;4个对象互相独立,倘若"我"说错了目的地,错在"我"身上,和出租车没有关系,不用去考虑出租车是否出错;又或者是商场区域出错,那其他3个对象也不需要考虑.同时,如果我需要增加额外的东西,比如我还要去游乐场,我只需要修改"我"里面增加一个目的地"游乐场"即可;又或者我去到商店还要看其他东西,我只要修改"我"和在商店里增加一个类别就ok了,其他的东西均不受影响,这就是OOP的最大特点