D1: elevater design
来源:互联网 发布:手机切歌软件 编辑:程序博客网 时间:2024/06/05 17:46
paul198247 (S.Battier) 于 (Mon Jul 12 00:30:59 2010, 美东) 提到:
如果让设计一个多部电梯的控制系统,画出uml图。请问大概要设计哪些类,类之间的
关系?
我是最近才看OOD的,比较菜
我是这么想的:
主系统
System包含了taskcenter,elevator
任务系统taskcenter负责给不同电梯增加任务,删除任务,响应不同电梯内的任务请求
,每层用户的请求
电梯elevator 包括了自己的任务list,方向,以及状态。电梯类有2个子类,一个是UI
_elevator,一个是task_elevator。UI_elevator函数有addrequest,
removerequest,askforhelp,opendoor,closedoor这些是给电梯内的用户的;task_
elevator有getdirection,getcondition,getrequest,addtask, removetask等函数
,这些是给taskcenter调用。
request 有2种子类,一种是elevatorrequest,是UI_elevator发出的;一种是
floorrequest,是每层电梯外用户发出的。
taskcenter和request,UI_elevator和request的关系应该是关联关系
taskcenter和task_elevator的关系应该是聚合吧。
☆─────────────────────────────────────☆
boyjemmy (jemmyboy) 于 (Mon Jul 12 18:52:30 2010, 美东) 提到:
先说说我对单个电梯设计的想法(欢迎批评指正)
1 Elevator Object, 应该包含physical components: Door, Indicator Lights,
Control Panel. 一些性质(Non physical properties): Speed, Num of floors,
capacity, max weight. 所能从事的操作methods: moveto, stop, ringbell。然后电
梯应该能够handle user request, 所以还应有一个requestQueue, 电梯应该根据自己
的state 和 requestQueue做出moveto, stop的决定,所以有一component:
requestHandler(Strategy pattern),可以set不同的requestHanlder.
2 Door, properties: State, method: open, close, getState.
3 Indicator light(指示所到楼层),properties: state; method: on, off,
getState
4 Control Panel, 包含physical component: Floor Buttons, Other buttons(也可直
接把Buttons 当作 elevator的components,还没考虑哪一个方法好)
5 Button, properties: floorNum, Parent Elevator, methods: OnPress(Observer
Pattern).
6 ElevatorRequestHandler: handleRequest(Elevator ele, requestList rlist), 可
以define 一个interface, 然后又各种不同实现
7 Request: 可以define 一个abstract class, 然后有子类movingRequest,
helpRequest doorRequest etc.
如果让设计一个多部电梯的控制系统,画出uml图。请问大概要设计哪些类,类之间的
关系?
我是最近才看OOD的,比较菜
我是这么想的:
主系统
System包含了taskcenter,elevator
任务系统taskcenter负责给不同电梯增加任务,删除任务,响应不同电梯内的任务请求
,每层用户的请求
电梯elevator 包括了自己的任务list,方向,以及状态。电梯类有2个子类,一个是UI
_elevator,一个是task_elevator。UI_elevator函数有addrequest,
removerequest,askforhelp,opendoor,closedoor这些是给电梯内的用户的;task_
elevator有getdirection,getcondition,getrequest,addtask, removetask等函数
,这些是给taskcenter调用。
request 有2种子类,一种是elevatorrequest,是UI_elevator发出的;一种是
floorrequest,是每层电梯外用户发出的。
taskcenter和request,UI_elevator和request的关系应该是关联关系
taskcenter和task_elevator的关系应该是聚合吧。
☆─────────────────────────────────────☆
boyjemmy (jemmyboy) 于 (Mon Jul 12 18:52:30 2010, 美东) 提到:
先说说我对单个电梯设计的想法(欢迎批评指正)
1 Elevator Object, 应该包含physical components: Door, Indicator Lights,
Control Panel. 一些性质(Non physical properties): Speed, Num of floors,
capacity, max weight. 所能从事的操作methods: moveto, stop, ringbell。然后电
梯应该能够handle user request, 所以还应有一个requestQueue, 电梯应该根据自己
的state 和 requestQueue做出moveto, stop的决定,所以有一component:
requestHandler(Strategy pattern),可以set不同的requestHanlder.
2 Door, properties: State, method: open, close, getState.
3 Indicator light(指示所到楼层),properties: state; method: on, off,
getState
4 Control Panel, 包含physical component: Floor Buttons, Other buttons(也可直
接把Buttons 当作 elevator的components,还没考虑哪一个方法好)
5 Button, properties: floorNum, Parent Elevator, methods: OnPress(Observer
Pattern).
6 ElevatorRequestHandler: handleRequest(Elevator ele, requestList rlist), 可
以define 一个interface, 然后又各种不同实现
7 Request: 可以define 一个abstract class, 然后有子类movingRequest,
helpRequest doorRequest etc.
- D1: elevater design
- D1
- D1
- d1
- CIF,D1,HALF D1,FULL D1
- D1.gif
- taw d1
- 视频格式D1
- 视频格式D1
- 视频格式D1
- D1分辨率
- 视频格式D1
- last_day(d1)
- D1 准备
- NOIP2013 D1
- D1二进制
- CIF QCIF HALF D1 D1
- design
- 获取Android状态栏高度的屡试不爽的方法
- 在51系列中data,idata,xdata,pdata的区别
- ubuntu serv 安装 sun jdk
- Python中包,模块导入的方法
- failed to allocate memory 8 解决
- D1: elevater design
- 关于模式窗口点击提交按钮,为何不能在当前窗口完成,而是显示另外一窗口完成,该如何解决?
- SetParent
- Oracle中通过使用语句来实现查看表中某指定列的类型
- java_位操作符的运算
- UVA 536 - Tree Recovery
- PHP的运行机制
- python shell help
- JS中的EACH使用RETURN