设计模式之序-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 内容简析(易错加粗) 2 uml类图展示 1 内容简析(易错加粗) 1.1 设计模式中的对象关系 依赖关系 虚线箭头 组合关系 实心菱形 聚合关系 空心菱形(想象成盘子,盛东西,盘子的多,另一方少) 关联关系 实线  类与类的连接,(它使一个类知道另一个类的属性和方法,关联关系一般用成员变量实现) 继承 空心三角形实线 实现 空心三角形虚线 1.2 其他需要注意的地方 实现接口有两种方式,一种是棒棒糖的形式,另一种是虚线空心三角形的方式 2 uml类图展示…
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…
1 代码演练 1.1 代码演练1 1.2 代码演练2(后端课程子类运用钩子方法,加入写手记的方法) 1.3 代码演练3(前端有多个子类,有得需要写手记,有得不需要写,如何实现?) 1 代码演练 1.1 代码演练1 目的: 木木网制作课程视频父类,前端课程子类和设计模式子类.父类需要制作PPT,制作视频,制作手记,包装课程四个部分,且步骤基本一致,其中制作PPT和制作视频都一致,前端子类和后端子类包装课程方法不一样. uml类图: 测试类: package com.geely.design.pat…
1 代码演练 1.1 代码演练1 1 代码演练 1.1 代码演练1 需求: 网站笔记需要存储快照,能实现回退的功能. 注意: a 设计的时候,可以分为笔记类,笔记快照类和 笔记快照管理类  三个类. b 笔记快照管理 和 笔记快照是聚合关系,快照管理可以有0到多个笔记快照. c 快照管理类用栈的方式存储快照,先进后出,后进先出. uml类图:(右边是测试类) 测试类: package com.geely.design.pattern.behavioral.memento; /** * Creat…