本人仅作为笔记使用,请看原文:https://blog.csdn.net/litefish/article/details/51851685
这篇写的也很好https://blog.csdn.net/kevin_darkelf/article/details/11371353
读代码的时候画下类图对于理清关系非常有意义,我今天尝试着画了下,找了些资料,总结后,自己写了一个,记录关键点,备忘.
类图
这是一个类
- public class Student {
- public Student(String faimly, boolean gender) {
- this.faimly = faimly;
- this.gender = gender;
- }
- private String faimly;
- private boolean gender;
- protected String getFaimly() {
- return faimly;
- }
- public boolean isGender() {
- return gender;
- }
- public void setFaimly(String faimly) {
- this.faimly = faimly;
- }
- }
解释下,第一行是类名;第二行是成员,由3部分组成,符号+成员名+返回值。第三行是成员函数
符号为-#+,三选一,分别表示private,protected,public。java里还有个package,我不知道该怎么写,不写算了。
接口
- public interface IEat {
- String eat(String food);
- }
类的关系--派生(父子类)
- public class OverseaStudent extends Student {
- public OverseaStudent(String faimly, boolean gender) {
- super(faimly, gender);
- }
- public String getCountry() {
- return country;
- }
- private String country;
- }
类的关系--实现(接口实现)
类的关系--聚合(Aggregation)
类的关系--组合(Composition)
组合其实跟聚合类似的,区别之处在于,组合的关系,是没有他肯定没有我。聚合是没有他,也可以有我。比如上面的头和人的关系,是聚合关系。没有人,依然有头。但是下边的头和嘴的关系就是组合关系,没有头肯定没有嘴。
类的关系--一般关联(Association)
注释(note)
参考文献
http://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html
http://blog.csdn.net/tianhai110/article/details/6339565
http://www.uml.org.cn/oobject/201104212.asp
http://blog.csdn.net/lovelion/article/details/7838679
http://www.uml.org.cn/oobject/201211231.asp
http://www.ibm.com/developerworks/cn/rational/rationaledge/content/feb05/bell/