面向对象的分析与设计
来源:互联网 发布:全民神仙官网通知 编辑:程序博客网 时间:2024/05/15 06:50
谁拥有数据 谁就对外提供操作这些数据的方法!
eg:
1. 汽车 马路
汽车看到自己所在的录像对应的红绿灯就穿过路口? 不是,还需要看它前面是不是有车,那么,看它前面是否有车,该问哪个对象呢?
该问路,路中存储着车的集合,显然路上就应该有增加车辆和减少车辆的方法。不是汽车自己给自己减少了。
2.人在黑板画圆(两个对象:人, 黑板)
问题:现在有一个画圆的动作 这是那个对象上面的方法?
答:画圆用到了 圆心和半径 要操作这两个数据 那么谁有这些东西 肯定是 黑板有 所以画圆的方法是圆提供的
3.人在开火车(两个对象:人,火车)
问题 : 现在有一个刹车的动作 这是哪个对象上面的方法?
答:火车 用到了火车刹车的功能。因为人只是给火车一个信号 那么 火车就去熄火 刹车动作是列车内部的
4.售票员统计售货小票上面的总金额(两个对象:人, 售货小票)
问题:统计票据金额这个动作 这是那个对象上面的方法?
答:票据 因为商品价格的多少是装在售货小票里面的 ,人只不过是去调用了一个票据对象上面getTotalMoney()方法 这个方法是票据提供的。
5.人锁门(两个对象:人 门)
问题:锁门的动作是你还是门?
答:门 。因为 人只是调用了门上锁的方法 是门自己锁上的
**************************************************************
请用面向对象的方式设计如下情景!:
1.两块石头磨成一把石刀,石刀可以砍树,砍成木材,木材可以做成椅子。
分析:
Stone 身上应该有变成石刀的方法? 肯的没有 因为如果是这样的话 把自己逗弄没了,只能是别人把石头弄没了 怎么能是自己把自己弄没了呢?
结果:StoneKnife = KnifeFactory.createKnife(first stone,second stone)
StoneKnife
tree 木材变成 材料
结果 material=StoneKnife.cut(tree);
material 材料变成椅子
结果 chair=chairFactory.makeChairz(material);
chair
2.小球从一个生子的一端移动到另一端。
分析:两个对象 小球和绳子
绳子是干什么用的? 本质:为球的移动提供了指引的方向 小球有一个滚动的方法,他怎么知道往哪个方向滚? 他去问绳子 哥们 nextPoint()在哪?
import java.awt.Point;public class Rope {//绳子private Point start;private Point end;public Rope(Point start, Point end) {super();this.start = start;this.end = end;}//获取下一个点的方法public Point getNextPoint(){}}//球类import java.awt.Point;public class Ball {private Rope rope;//小球依赖绳子 把绳子作为属性private Point curretnPoing;public Ball(Rope rope, Point curretnPoing) {super();this.rope = rope;this.curretnPoing = curretnPoing;}public void move() {curretnPoing = rope.getNextPoint();System.out.println("小球移动到了" + curretnPoing);}}
- 面向对象的分析与设计
- 面向对象的分析与设计
- ICONIX--面向对象的分析与设计
- 面向对象的分析与设计
- 面向对象的分析与设计
- 面向对象分析与设计的意义
- 面向对象分析与设计的区别
- 面向对象的分析与设计1
- 面向对象的分析与设计OOAD
- 面向对象分析与设计
- 面向对象分析与设计
- 面向对象分析与设计
- 面向对象设计与分析
- 面向对象分析与设计
- 面向对象与结构化的分析与设计
- 基于UML的面向对象的分析与设计
- 面向对象的分析与设计的一些介绍2
- 基于模式的面向对象分析与设计
- Linux下磁盘管理命令df与du
- js 文本滚动效果的实例代码
- 关于如何在android 官网下载sdk和用sdk manager 更新sdk 的最新版本
- js常用技巧
- Boost 备忘录
- 面向对象的分析与设计
- 提高工作效率--番茄工作法
- 学3D要有一颗憋辉耀的心
- Future
- 上班太早了
- windows xp 网络共享
- Win7(64)下利用Vmware 10 创建Mac OS
- 你造=你知道?
- DOS 根据用户输入执行指令判断IF