UML简单介绍
UML是一种建模语言。UML用户指南将UML定义为“一种用于可视化表示、指定、构造和描述软件密集系统中部件的图形化语言”
类图的结构
![](https://images.cnblogs.com/cnblogs_com/jielife/iml1.jpg)
属性
以上一个Cabbie类的类图,类名是Cabie 有两个属性(companyname、name)并定义为私有方法(属性名前有(-)号,表示该属性为私有属性,如果是(+)号,属性就为公共属性) ,而属性的类型为String。
通常我们定义属性都会将属性定义私有属性,然后再配合设置或获取属性的方法来达到封装的原则。书上是用Java的例子,所以类图中有设置、获取属性的方法。在VB.NET中用property关键字定义属性,并定义为公共类型,系统会自动生成设置。获取属性的方法。我们不需要自己重新定义改方法。
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
方法
与类同名的方法为构造函数,上类图中+Cabbie 为构造函数,构造函数属于方法。有set、get为前缀名的方法大都为属性的设置、获取方法。+giveDirevtions 是一个公共方法 ,还有两个私有方法(-turnLeft、-turnRight)为内部实现方法。
访问指示
属性或方法名的前面的加号(+)、减号(-)指示了这些属性和方法是公共的还是私有的。减号为私有,加号为公有。如果类图中没有提供访问指示,那么就会采用系统默认的访问类型。
类之间的交互表示
类图与类图之间用一些有代表意义的线连接,dog继承Mammal,同时关联Head。以下是一些UML的连接线,只列出几个,还有很多,大家可以参考UML建模工具的帮助文档。关联
之前提到过关联组合的一种表现方式,采用一条普通的线连接存在关联关系的类,例如:计算机的例子.继承
继承关系在UML中表示为一条线,并有一个箭头指向父类或超类(父类、超类,一样的东西,说法不一样)。嵌套
指示起始类是在结束类的嵌套。就是在类中嵌套一个类。()依赖
对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间主要体现为依赖关系,例如生产零件的机器和零件,机器负责构造零件对象。再例如充电电池和充电器,充电电池通过充电器来充电。聚合
当系统A被加入到系统B中,成为系统B的组成部分时,系统B和系统A之间为聚集关系。例如自行车和它的响铃、龙头、轮胎、钢圈以及刹车装置就是聚集关系,因为响铃是自行车的组成部分。而人和自行车不是聚集关系,因为人不是由自行车组成的,如果一定要研究人的组成,那么他应该由头、躯干和四肢等组成。
以上只是UML建模的冰山一角,UML是一个非常复杂而且重要的主题,要想全面介绍UML,需要整本书(可能多本书)才能做到。UML能帮助我们完成OO系统的开发。
---------------
这几天看到几部精探的电影跟动画,柯南跟神探伽利略,特别喜欢神探伽利略,里面的案件都是一个物理学的教授用物理学来破案,因为自己高中的时候主课是物理,所以特别兴趣,每个案件到最后都会做一个物理实验来验证推理的正确性。大概有10集左右的连续剧,还有1部电影,1部主角历史之类的。
昨天晚上写播放器写到两点多,然后就遇到问题了。播放的时候,播放的控件把窗体WinForm跟PictureBox覆盖住了,鼠标跟键盘的操作的消息,系统没有发送到播放器的窗体,造成双击播放窗口全屏的事件不能激活,全屏播放后按ESC键不能退出全屏。然后特好运,本想去睡,今天再做的,睡前就再上上博客园,发现主页的第一篇文章(刚刚发布的博客)[原创] 如何通过自定义MessageFilter的方式利用按键方式操作控件滚动条[附源代码] ,进入一看。当时是兴奋啊,楼主用IMessageFilter来截取键盘鼠标操作的信息(Windows系统的操作原理是发送信息给相应的程序,程序根据信息作出反应)然后越过覆盖控件把信息传到指定控件。正正是我需要的东西。
蚊子又出来咯。气温高了,这些小动物就活跃了。今晚继承奋斗。加油!