随笔分类 -  设计模式

设计模式课程 设计模式精讲 6-1 抽象工厂讲解
摘要:1 课程讲解 1.1 定义 1.2 适用场景 1.3 优点 1.4 缺点 1.5 产品等级和产品簇 定义: ◆抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口◆无须指定它们具体的类◆类型:创建型 客户端需要创建抽象工厂的具体实现,使用抽象工厂作为接口来创建这一主题的具体对象。 自己理解:解决产 阅读全文
posted @ 2019-08-02 19:16 菜鸟乙 阅读(171) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 5-3 工厂方法源码解析
摘要:1 源码解析 1.1 collection的iterator解析 1.2 http协议类解析 Collection:(collection相当于抽象工厂(这里的抽象工厂指代工厂的父类),iterator相当于抽象类,abstractList相当于工厂,Itr相当于实现类) AbstractList 阅读全文
posted @ 2019-08-01 20:13 菜鸟乙 阅读(164) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 5-2 工厂方法coding
摘要:1 课堂讲义 1.1 产品等级和产品簇 2 代码演练 2.1 工厂方法代码演练 工厂方法是为了解决同一产品等级的业务抽象问题 抽象工厂方法是为了解决同一产品簇的问题 产品等级: 相同类型的产品为同一产品等级。 比如:汽车有大众汽车,长安汽车,奥迪汽车等。长安汽车和奥迪汽车,大众汽车属于同一产品等级. 阅读全文
posted @ 2019-07-29 20:12 菜鸟乙 阅读(151) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 5-1 工厂方法讲解
摘要:1 课堂讲义 1.1 定义 1.2 类型 1.3 适用场景 1.4 优点 1.5 缺点 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。 工厂 方法 工厂 创建对象用的 ,方法 通过子类实现方法来创建对象。 创建型 ◆创建对象需要大量重复的代码◆ 阅读全文
posted @ 2019-07-29 19:37 菜鸟乙 阅读(191) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 4-3 简单工厂源码解析
摘要:0 课程地址 https://coding.imooc.com/lesson/270.html#mid=17162 1 源码解析 1.1 Calendar源码解析 1.2 DriverManager源码解析 1 源码解析 1.1 Calendar源码解析 /** * Gets a calendar 阅读全文
posted @ 2019-07-28 16:44 菜鸟乙 阅读(180) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 4-2 简单工厂coding
摘要:0 课程地址 https://coding.imooc.com/lesson/270.html#mid=17160 1 代码演练 1.1 未使用简单工厂模式代码 1.2 使用简单工厂模式 1.3 使用反射机制简单工行模式 1 代码演练 1.1 未使用简单工厂模式代码 测试类: package com 阅读全文
posted @ 2019-07-28 13:58 菜鸟乙 阅读(145) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 4-1 简单工厂讲解
摘要:0 课程链接 课程链接 1 课程讲解 1.1 定义 1.2 应用此场景 1.3 优点 1.4 缺点 2 课程讲解 1.1 定义 由一个工厂对象决定创建出哪一种产品类的实例。 简单工厂模式严格意义上说并不是一种设计模式,它是一种编码上的风格和习惯。 1.2 应用此场景 3.1 工厂类负责创建的对象比较 阅读全文
posted @ 2019-07-28 09:36 菜鸟乙 阅读(198) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 3-11 合成复用原则coding
摘要:1 课堂概念 1.0 继承关系的选择 1.1 起名 1.2 定义 1.3 组合聚合优缺点 1.4 继承优缺点 1.5 组合聚合区别 2 代码演练 2.1 反例 2.2 正例 3 疑问解答3.1 疑问解答 搜索,官方解答,说继承关系是is a的关系,在我看来,正方形is a 长方形,详看3.1解答和上 阅读全文
posted @ 2019-07-22 19:52 菜鸟乙 阅读(379) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 3-10 里氏替换原则coding
摘要:1 代码演练 1.1 继承关系判别(是否是真正意义的继承) 1.2 入参控制 1.3 出参控制 1 代码演练 1.1 继承关系判别(是否是真正意义的继承)(其实我觉得这个例子有点牵强) 1.1.1 反例 结论: 确定继承关系的时候一定要判断好,是否父类的方法子类可以继承。传统意义的正方形是矩形的子类 阅读全文
posted @ 2019-07-20 15:20 菜鸟乙 阅读(291) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 3-9 里氏替换原则讲解
摘要:1 课程讲义 1.1 定义 1.2 特色 1.3 优点 1 课程讲义 1.1 定义 定义:如果对每一个类型为T1的对象o1,都有类型为T2的对象02,使得以T1定义的所有程序P在所有的对象o1都替换成o2时,程序P的行为没有发生变化,那么类型T2是类型T1的子类型。定义扩展:一个软件实体如果适用一个 阅读全文
posted @ 2019-07-19 19:55 菜鸟乙 阅读(278) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 3-8 迪米法特原则讲解及Coding
摘要:1 课程讲解 1.1 定义 1.2 特质 1.3 重点 2 代码演练 2.1 反例 2.2 正例 1 课程讲解 1.1 定义 定义:一个对象应该对其他对象保持最少的了解。又叫最少知道原则。 1.2 特质 核心:降低类的耦合 优点:降低类的耦合 1.3 重点 只和朋友交流,不和陌生人说话 朋友:出现在 阅读全文
posted @ 2019-07-18 18:39 菜鸟乙 阅读(185) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 3-7 接口隔离原则讲解及Coding
摘要:1 主讲内容 1.1 核心内容 1.2 优点 1.3 课程记录 2 代码演练 2.1 接口隔离原则反比 2.2 接口隔离原则正比 1 主讲内容 1.1 核心内容 总结:细粒度可以进行再组装,粗粒度不可再拆分,所以接口设计的时候尽可能适度的拆分 1.2 优点 ◆优点:符合我们常说的高内聚低耦合的设计思 阅读全文
posted @ 2019-07-17 18:29 菜鸟乙 阅读(187) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 3-6 单一职责原则Coding
摘要:1 要点讲解 1.1 需要注意 2 代码演练 2.1 类的单一职责原则demo 2.2 接口的单一职责原则demo 2.3 方法的单一职责原则demo 1 要点讲解 1.1 需要注意 2 代码演练 2.1 类的单一职责原则demo 测试类: 实体类1: 实体类2: 打印日志: 2.2 接口的单一职责 阅读全文
posted @ 2019-06-05 21:35 菜鸟乙 阅读(183) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 3-5 单一职责原则讲解
摘要:1 课程讲解 1.1 定义 1.2 优点: 1.3 详解 1 课程讲解 1.1 定义 ◆定义:不要存在多于一个导致类变更的原因 1.2 优点: ◆优点:降低类的复杂度,增加可读性,降低变更引起的系统风险,提高系统可维护性 1.3 详解 一个类/接口/方法只负责一项职责 一个类只负责一个职责,假如负责 阅读全文
posted @ 2019-06-02 16:40 菜鸟乙 阅读(146) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 3-4 依赖倒置原则讲解+coding
摘要:1 课程讲解 1.1 定义 1.2 优点 1.3 细节描述 2 代码演练 2.0 代码展示优点 2.1 非面向接口编程 2.2 面向接口编程1 传参 2.3 面向接口编程2 构造函数 2.4 面向接口编程3 set方法 1 课程讲解 1.1 定义 ◆定义:高层模块不应该依赖低层模块,二者都应该依赖其 阅读全文
posted @ 2019-06-02 14:11 菜鸟乙 阅读(170) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 3-3 开闭原则 coding
摘要:1 课程讲解 1.1 开闭原则定义 1.2 不重要内容 2 代码coding 2.1 基类 2.2 需求:打印出原价和折扣后的价格。(接口不应该随意变化,面向接口编程) 1 课程讲解 1.1 开闭原则定义 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 1.2 不重要内容 (抽象构建框架, 阅读全文
posted @ 2019-06-01 16:13 菜鸟乙 阅读(272) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 3-2 开闭原则讲解
摘要:1 本节内容 1.1 核心思想 1.2 理解 1.3 定义 1.4 优点 1 本节内容 1.1 核心思想 面向抽象编程,(因为抽象是稳定的) 1.2 理解 不改变原先的业务逻辑,新增的功能点通过重写复用的方法进行编程 1.3 定义 ◆定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 1 阅读全文
posted @ 2019-06-01 12:57 菜鸟乙 阅读(124) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 3-1 本章导航
摘要:1 主讲内容 2 需要注意 3 设计模式和设计原则的区别 1 主讲内容 ◆开闭原则 ◆依赖倒置原则 ◆单一职责原则 ◆接口隔离原则 ◆迪米特法则(最少知道原则) ◆里氏替换原则 ◆合成/复用原则(组合/复用原则) 2 需要注意 不要追求设计原则过度,根据业务场景,财务预算等进行取舍 3 设计模式和设 阅读全文
posted @ 2019-06-01 11:59 菜鸟乙 阅读(186) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 2-4 UML类图讲解 对比讲解 demo
摘要:1 主要内容 1.1 关联和依赖的对比 1.2 组合和聚合的对比 1.3 继承(泛化)和实现的对比 1.4 各种关系代码实现demo 1 主要内容 1.1 关联和依赖的对比 关联是a类中存在b类对象,企鹅类中有气候类的属性 依赖是a类成员方法中使用b类的属性,动物新陈代谢方法中使用水和空气的属性,只 阅读全文
posted @ 2019-06-01 11:48 菜鸟乙 阅读(189) 评论(0) 推荐(0) 编辑
设计模式课程 设计模式精讲 2-3 UML类图讲解自上而下
摘要:1 内容简析(易错加粗) 2 uml类图展示 1 内容简析(易错加粗) 1.1 设计模式中的对象关系 依赖关系 虚线箭头 组合关系 实心菱形 聚合关系 空心菱形(想象成盘子,盛东西,盘子的多,另一方少) 关联关系 实线 类与类的连接,(它使一个类知道另一个类的属性和方法,关联关系一般用成员变量实现) 阅读全文
posted @ 2019-06-01 11:13 菜鸟乙 阅读(234) 评论(0) 推荐(0) 编辑