2020-02-23 21:05:54
实例分析3——售票机控制程序 某运输公司决定为新的售票机开发车票销售的控制软件。图I给出了售票机的面板示意图以及相关的控制部件。售票机相关部件的作用如下所述: (1) 目的地键盘用来输入行程目的地的代码(例如,200表示总站)。 (2) 乘客可以通过车票键盘选择车票种类(单程票、多次往返票和座席种类)。 (3) 继续/取消键盘上的取消按钮用于取消购票过程,继...
2020-02-23 21:01:36
实例分析1——登录模块 某基于C/S的即时聊天系统登录模块功能描述如下: 用户通过登录界面(LoginForm)输入账号和密码,系统将输入的账号和密码与存储在数据库(User)表中的用户信息进行比较,验证用户输入是否正确,如果输入正确则进入主界面(MainForm),否则提示“输入错误”。 根据以上描述绘制初始类图。 参考解决方案: 参考类...
2020-02-23 20:54:16
类与类之间的关系(2) 2. 依赖关系 依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。例如:驾驶员开车,在Driver类的drive()...
2020-02-23 11:11:29
1.UML简介Unified Modeling Language (UML)又称统一建模语言或标准建模语言。简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是他们的主要用途简介:1.用例图:对系统的使用方式分类.2.类图:显示类和它们的相互关系。3.对象图:只显示对象及它们的相互关系。4.活动图:显示人或对象的活动,其方式类似于流程图。5.状态机图:显示生命周...
2020-02-23 10:47:20
类与类之间的关系(1) 在软件系统中,类并不是孤立存在的,类与类之间存在各种关系,对于不同类型的关系,UML提供了不同的表示方式。 1. 关联关系 关联(Association)关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系,如汽车和轮胎、师傅和徒弟、班级和学生等等。在UML类图中,用实线连接有关联关系的对象所对应的类,在...
2020-02-23 10:36:50
在UML 2.0的13种图形中,类图是使用频率最高的UML图之一。Martin Fowler在其著作《UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition》(《UML精粹:标准对象建模语言简明指南(第3版)》)中有这么一段:“If someone were to come up...
2019-10-21 11:48:46
(三) 优先使用聚合,而不是继承有一段时间,养猪场的老板雇用了清洁工人来打扫猪舍。但有一天,老板忽然对自己说"不对啊,既然我有机器人,为什么还要雇人来做这件事情?应该让机器人来打扫宿舍!"于是,这个需求被提交到了机器人的研发小组。看到这个需求,我们敏感地意识到,这是一个潜藏了更多变化的需求,未来机器人的功能还可能会不断增加,于是,我们提取出了一个抽象的机器人接口,并实现了两个具...
2019-10-16 19:45:38
这是勇哥很久以前在博客园里面发的文章。它是读设计模式的书时做的实践,我个人是比较喜欢的,这里转载过来给学习设计模式的朋友把玩一下。对于设计模式, 从本质上说, 其最大的用途就是适应需求的变化. 因为有了设计模式,我们可以在设计阶段就为未来可能发生的变化留下足够的空间.我们通过一个建造现代化养猪场的故事, 来讨论一下设计模式与需要变化之间的关系.(一)设计模式最根本的意图是适应需求的变化一个机器人研...
2019-07-22 22:04:39
单例模式主要处理两个问题: 全局访问与实例化控制单例模式采用private构造函数,让该类不能外部new, 并且提供static方法 GetInstance()方法返回唯一实例.采用lock机制可以避免在多线程环境下可能产品多个实例.下面是勇哥编写的一个例子:工具箱1Form和代码using System;
using System.Collections.Generic;
using Sys...
2019-03-16 21:09:26
引言面向对向程序设计的三大特征是: 封装,继承,多态平时做设备的程序用得最多的还是封装,或者还有一些基于局部功能性的继承。真心来说程序仅仅是为了实现功能,还远远谈不上真正的是面向对象开发。当然这也是有原因的:一方面,设计模式并不是直接写出来的,而是重构代码改出来的(至少勇哥是这么认为的)。在完成了设备功能的情况下,往往因为时间关系,不可能再重构代码,因为当设备开始进行生产状态后,客户认为再去动代码...
2018-07-24 21:53:44
在netMarketing/winformHelper/dynMenu.cs 这个类是动态菜单的业务逻辑。它的配置窗体位于另一个工程 UserUI/Dialog/dynMenuSteup.cs 中。dynMenuSteup.cs 包含了netMarketing类的引用。但是netMarketing类中又想弹出UserUI工程中的对话窗,但是你不可能再包含UserUI的引用,因为这样就是循环引用了。...
2018-07-24 17:09:41
c# 中 Abstract和Virtual比较容易混淆,都与继承有关,并且涉及override的使用。下面讨论一下二者的区别:一、Virtual方法(虚方法) virtual 关键字用于在基类中修饰方法。virtual的使用会有两种情况: 情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。 情况2:在基类中定义...