1 内容简析(易错加粗) 2 uml类图展示 1 内容简析(易错加粗) 1.1 设计模式中的对象关系 依赖关系 虚线箭头 组合关系 实心菱形 聚合关系 空心菱形(想象成盘子,盛东西,盘子的多,另一方少) 关联关系 实线  类与类的连接,(它使一个类知道另一个类的属性和方法,关联关系一般用成员变量实现) 继承 空心三角形实线 实现 空心三角形虚线 1.2 其他需要注意的地方 实现接口有两种方式,一种是棒棒糖的形式,另一种是虚线空心三角形的方式 2 uml类图展示…
1 主要内容 1.1 关联和依赖的对比 1.2 组合和聚合的对比 1.3 继承和实现的对比 1.4 各种关系代码实现demo 1 主要内容 1.1 关联和依赖的对比 关联是a类中存在b类对象,企鹅类中有气候类的属性 依赖是a类成员方法中有b类的属性,动物新陈代谢方法中有水和空气的属性,只有调这个方法的时候,才可能临时用一下 1.2 组合和聚合的对比 组合有相同的生命周期,鸟有翅膀,鸟死了,翅膀不复存在 大雁群有大雁,一直大雁挂了,大雁群不会消失 1.3 继承和实现的对比 实线:继承 虚线:实现…
1 类图讲解 1 类图讲解 + 公共方法 - private权限 # protected权限 包内和包外继承的子类都能引用 ~ default权限(包权限)只有包内能引用 下划线   静态 Static 斜体   抽象类(或抽象方法)(包含抽象方法的必是抽象类)(类和至少一个方法都是斜体) 方法   可以带参,可以不带参   返回值写到冒号后边,void不用加 注意:下图类名应该为斜体,因为有抽象方法study(),所以GeelyClass为抽象类,应该为斜体.…
设计模式之序-UML类图那点事儿 打14年年底就像写那么一个系列,用于讲设计模式的,代码基于JAVA语言,最早接触设计模式是大一还是大二来着,那时候网上有人给推荐书,其中就有设计模式,当时给我推荐的书我还隐约记得,叫GoF的,书名是<Design Patterns: Elements of Reusable Object-Oriented Software>,也即<设计模式>,机械出版社的将其翻译为<设计模式-可复用面向对象软件的基础>.至于为什么叫做GoF,那时候因为…
设计模式之序-UML类图那点事儿 序 打14年年底就像写那么一个系列,用于讲设计模式的,代码基于JAVA语言,最早接触设计模式是大一还是大二来着,那时候网上有人给推荐书,其中就有设计模式,当时给我推荐的书我还隐约记得,叫GoF的,书名是<Design Patterns: Elements of Reusable Object-Oriented Software>,也即<设计模式>,机械出版社的将其翻译为<设计模式-可复用面向对象软件的基础>.至于为什么叫做GoF,那时候…
UML类图笔记 大学开设的软件设计课程一般都会学习UML类图,大部分关于设计模式的描述都是使用的UML类图,可以说类图的表示是学习设计模式的起点.UML定义类之间的关系主要有六种:泛化关系.实现关系.依赖关系.关联关系.聚合关系和组合关系.下面分别学习这几种关系. >>泛化关系(Generalization) 使用带空心三角形的实线表示. 汽车与SUV之间为泛化关系: 泛化关系相当于面向对象中的继承关系.最终代码中,泛化关系表现为继承非抽象类. >>实现关系(Emlpementat…
一个类如何表示 第一格为类名 第二格为类中字段属性 格式:权限 属性名:类型 [ = 默认值 ] 权限:private.public .protected.default,它们分别对应 -.+.#.~ 第三格为类的方法 格式:权限 方法名称(参数列表) [ : 返回类型] 返回类型可选 类之间的关系 多看几次上图,对比如下简短说明,再结合实践,相信你很快就可以搞清楚类图了. 泛化(Generalization),在 Java 中叫继承 空心三角直线表示 实现(Realization) 空心三角虚…
在学习设计模式的时候,经常会遇到UML类图,所以就找了一些资料,做一些笔记. 从一个示例开始 下面这个类图,类之间的关系是我们需要关注的: 车的类图结构为<<abstract>>,表示车是一个抽象类. 它有两个继承类:小汽车和自行车:他们之间的关系为实现关系,使用带空心箭头的虚线表示: 小汽车与sub之间也是集成关系,他们之间的关系为泛华关系,使用带空心箭头的实线表示: 小汽车去发动机和轮胎是组合关系,使用带实心菱形箭头的实线表示: 学生与班级之间是聚合关系,使用带空心菱形箭头的实…
1 代码演练 1.1 建造者模式演练 1.2 静态内部类演练建造者模式(链式调用) 1 代码演练 1.1 建造者模式演练 需求: 根据讲师提供的课程名称,课程ppt,课程视频,课程手记,课程问答 制作教学课程. 重点: 教练类coach.java标红部分,builder设值,然后赋值(看test.java). uml类图: 测试类: package com.geely.design.pattern.creational.builder; public class Test { public st…
1 代码演练 1.1 代码演练1(迭代器模式演练) 1.2 代码使用场景 1 代码演练 1.1 代码演练1(迭代器模式演练) 需求: 课程管理:需要实现课程可进行增添,删除,并能够打印出课程列表. uml类图: 测试类: package com.geely.design.pattern.behavioral.iterator; public class Test { public static void main(String [] args){ //新增6个课程 Course course1…