我是在这个网站学习的https://www.bilibili.com/video/BV1G4411c7N4?spm_id_from=333.337.search-card.all.click
摘要:四则运算问题 传统方案解决四则运算问题分析 解释器模式基本介绍 解释器模式的原理类图 对原理类图的说明-即(解释器模式的角色及职责) 解释器模式来实现四则运算 应用实例要求 通过解释器模式来实现四则运算 如:计算a+b-c 的值 2.思路分析和图解(类图) 3.代码实现 package com.sk
阅读全文
摘要:智能家庭项目 传统方案解决智能家庭项目 传统解决方式存在的问题 中介者模式基本介绍 中介者模式原理类图 中介者模式应用实例-智能家庭管理 1)应用实例要求 完成前面的智能家庭项目,使用中介者模式 2)思路分析和图解,使用中介者模式 代码实现 package com.sky.mediator; //
阅读全文
摘要:游戏角色状态恢复问题 传统方案解决游戏角色恢复问题 传统解决方案的问题分析 备忘录模式基本介绍 备忘录模式的原理类图 代码实现 package com.sky.memento.theory; // 原始对象 public class Originator { private String state
阅读全文
摘要:需求案例 使用传统的设计方案 传统解决方案存在的问题 迭代器模式的基本介绍 迭代器模式的原理类图 迭代器模式应用实例 代码实现 package com.sky.iterator; import java.util.Iterator; // 学院接口 public interface College
阅读全文
摘要:智能生活项目需求 命令模式基本介绍 命令模式原理类图 命令模式解决智能生活项目 代码实现 package com.sky.command; // 创建命令接口 public interface Command { // 执行动作 void execute(); // 撤销动作 void undo()
阅读全文
摘要:豆浆制作问题 模板方法模式基本介绍 模板方法模式原理类图 模板方法模式解决豆浆制作问题 代码演示 package com.sky.template; /** * 抽象类 豆浆 */ public abstract class SoyMilk { // 模板方法,make() 模板方法可以做成fina
阅读全文
摘要:代理模式基本介绍 如果不使用代理模式,按照我们传统模式是Client直接调用TargetObject对象。 静态代理 思路分析图解 静态代理代码实现 package com.sky.proxy.staticproxy; // 接口 public interface ITeacherDao { voi
阅读全文
摘要:装饰者模式 星巴克咖啡订单项目: 1)咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、ShortBlack(浓缩咖啡)、LongBlack(美式咖啡)、Decaf(无因咖啡) 2)调料:Milk、Soy(豆浆)、Chocolate 3)要求在扩展新的咖啡种类的时候,具有良好的扩展性、改动方便、
阅读全文
摘要:原型模式 克隆羊的问题 传统方案解决 package com.sky.prototype; /** * 羊 */ public class Sheep { private String name; // 姓名 private int age; // 年龄 private String color;
阅读全文
摘要:职责链模式: OA系统采购审批需求 传统解决方案: 传统方案解决OA审批系统问题分析: 职责链模式基本介绍 职责链模式原理类图 职责链模式解决OA采购审批 代码实现 package com.sky.responsebility;// 处理者public abstract class Approver
阅读全文
摘要:外观模式(也叫做门面模式): 影院管理项目: 外观模式的基本介绍: 外观模式的原理类图: 原理类图的说明(外观模式的角色) 1)外观类(Facade):为调用端提供统一的调用接口,外观类知道哪些子系统负责处理请求,从而将调用端的请求代理给适当的子系统对象。 2)调用者(Client):外观接口的调用
阅读全文
摘要:要开发的小项目 传统方案解决网站展示项目-问题分析 享元模式基本介绍 享元模式的原理类图 内部状态和外部状态 享元模式应用实例 类图: 以上是仅仅是享元模式的内部状态 package com.flyweight;public abstract class WebSite { public abstr
阅读全文
摘要:策略模式 鸭子问题 传统方案解决鸭子问题 传统方案实现代码 package com.strategy; //抽象类 鸭子 public abstract class Duck { public Duck() { } //默认实现 public void quack(){ System.out.pri
阅读全文
摘要:APP抽奖活动问题 状态模式基本介绍 基本介绍 1.状态模式:他主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换。 2.当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。 状态模式原理类图 对原理类图的说明-即(状态
阅读全文
摘要:天气预报的项目需求 使用普通的推送方式实现(代码) package com.observer; /** * 这个是核心类(可以理解成气象观测站,他这里有最新的天气情况) * 1.包含最新的天气情况信息 * 2.含有CurrentConditions 对象 * 3.当数据有更新的时候,就主动的调用 C
阅读全文
摘要:测评系统的需求 传统方式的问题分析 1.如果系统比较小,还是OK的,但是考虑到系统增加越来越多的新的功能时,对代码修改是比较大的。违反了OCP原则。 2.扩展性不好,比如增加了新的人员类型,或者管理方法,都不好做。 访问者模式的基本介绍 1.访问者模式,封装了一些作用于某种数据结构的各元素的凑在哦,
阅读全文
摘要:适配器模式基本介绍 基本介绍 1.适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主要的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器。 2.适配器模式属于结构型模式 3.主要分为三类:类适配器模式、对象适配器模式、接口适配器模式 适配器模式的工作原理 类
阅读全文
摘要:盖房子项目需求 建造者模式也叫做生成器模式 1.需要建房子:这一过程为打桩、砌墙、封顶 2.房子有各种各样的,比如普通房,高楼、别墅,各种房子的过程虽然一样,但是要求不相同。 3.请编写程序,完成需求。 传统方式解决盖房子 package com.builder; public abstract c
阅读全文
摘要:我们现在需要建一个能够制作披萨的程序,这里面有不同口味的披萨,同时还有披萨的所有步骤,这里给出了四个步骤(准备,烘烤,切割,打包)。 我们在不使用简单工厂模式的时候 package com.factory.simplefactory.pizzastore.pizza; /** * 披萨抽象类 */
阅读全文
摘要:业务场景: 传统的解决方案:(使用继承的方式) 传统方案解决学校院系展示问题分析 1)将学院看做是学校的子类,系是学院的子类,这样实际上是站在组织大小来进行分层次的 2)实际上我们的要求是 :在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系, 因此这种方案,不能很好实现的管理的
阅读全文