D1: elevater design
如果让设计一个多部电梯的控制系统,画出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.
转载于:https://www.cnblogs.com/xishibean/archive/2013/03/05/2951284.html
D1: elevater design相关推荐
- 艾伟_转载:C# Design Patterns (3) - Decorator
Decorator Pattern (装饰模式) 装饰模式可「动态」地给一个对象添加一些额外的职责,提供有别于「继承」的另一种选择.就扩展功能而言,Decorator Pattern 透过 Aggre ...
- Design Pattern - Decorator(C#)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Defi ...
- HDU1007 Quoit Design 分治+递归
点击打开链接 Quoit Design Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
- C# Design Patterns (3) - Decorator
本帖介绍 Decorator Pattern (装饰模式),文章最后另提供 Decorator Pattern 的趣味四格漫画. ----------------------------------- ...
- DC(Design Compiler)使用说明
DC综合软件的使用有两种方法,一种是在图像界面下操作,另一种写一个脚本文件,对于大多数人,还是习惯图形界面点点点,但是亲测,发现真的很烦,因为要设置一堆东西,如果你在综合后出现问题,你修改你的代码,然 ...
- 顶会论文笔记:联邦学习——ATPFL: Automatic Trajectory Prediction Model Design under Federated Learning Framework
ATPFL: Automatic Trajectory Prediction Model Design under Federated Learning Framework 文章目录 ATPFL: A ...
- Optimal Design of Energy-Efficient Multi-User MIMO Systems: Is Massive MIMO the Answer?笔记
Optimal Design of Energy-Efficient Multi-User MIMO Systems: Is Massive MIMO the Answer? MIMO系统能量利用率受 ...
- ICC2:Design Planning(01)initial_DP
1.Create Design Library create_lib需要用到的文件有reference library(.ndm),Technology File(.tf),寄生参数提取规则文件(.t ...
- USART - Design Flow
目录 1. baud_clk_gen 1.1. RTL Coding 2. usart_tx 2.1. FSM Design RTL Coding 3. usart_rx 3.1. FSM Desig ...
- HDU1007(Quoit Design)
Quoit Design 题目传送门 Problem Description Have you ever played quoit in a playground? Quoit is a game i ...
最新文章
- php request payload怎么接收,[问题] PHP接收Request payload传递过来的参数
- Flutter开发Flutter与原生OC、Java的交互通信-2(48)
- AI同传效果媲美人类,百度翻译出品全球首个上下文感知机器同传模型
- 《梦断代码》读后感一
- 2017年第十一届中国电子产业品牌盛会盛大开启
- Java 泛型总结(三):通配符的使用
- 下方向键_Bash使用$#x27;...#x27;来捕获方向键
- SVN Could not open the requested SVN filesystem解决办法
- android studio 安装问题,解决Android Studio的安装问题
- ActiveMQ之发布- 订阅消息模式实现
- 全渠道java b2b b2c o2o平台
- 3分钟创建一个游戏类容器应用【华为云分享】
- (33)Verilog HDL缩减运算
- 洛谷 P1762 偶数
- [转] linux下shell中使用上下键翻出历史命名时出现^[[A^[[A^[[A^[[B^[[B的问题解决,Linux使用退格键时出现^H解决方法
- bzoj 1124: [POI2008]枪战Maf(贪心)
- [代码]获取源页的控件值
- typescript 第一弹
- mysql数据库巡检方案_美团MySQL数据库巡检系统的设计与应用
- 上海市计算机二级vb试题及答案,上海市207计算机二级vb试题.doc