摘要: 一个糖果机项目 智能糖果机,用Java软件控制糖果机: 待机 投入一元硬币 转动把手 滑落一颗糖果 待机(根据机器内糖果库存情况,是否提示售罄) 项目新需求的困惑 加入游戏元素:有10%的概率可以拿到2粒糖果 测试类 状态模式方案 状态模式:能根据内部状态的变化,改变对象的行为,看起来好像修改了类 阅读全文
posted @ 2020-02-02 14:05 KrisTse 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 较差的方案 每个单品都是一个子类,根据策略模式,众多单品子类都有的共同点,抽象出一个父类抽象类Drink,每当有一个新品出现都要写一个单品类,不易扩展,会产生很多子类,臃肿 更好一些的方案 将所有调料集成到父类 属性,并给出相应判断是否添加调料 方法 可用switch,0(不加),1(加),确定添加 阅读全文
posted @ 2020-02-02 14:04 KrisTse 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 一个家庭影院项目 组建一个家庭影院: DVD播放器、投影仪、自动屏幕、环绕立体声、爆米花机 传统的控制接口设计 直接用遥控器:统筹各设备开关 开爆米花机 放下屏幕 开投影仪 开音响 开DVD,选dvd 去拿爆米花 调暗灯光 播放 观影结束后,关闭各种设备 外观模式的原理和设计 外观模式:提供一个统一 阅读全文
posted @ 2020-02-02 14:02 KrisTse 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 适配器模式:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容. 从用户的角度看不到被适配者,是解耦的 用户调用适配器转化出来的目标接口方法 适配器再调用被适配者的相关接口方法 用户收到反馈结果,感觉只是和目标接口交互 把鸭子适配成火鸡 装饰者模式与适配器模式的差别 阅读全文
posted @ 2020-02-02 14:00 KrisTse 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 案例一:遥控器 传统设计方案 Control Light Stereo TraditionControl 测试类 命令模式 原理 使得命令的请求者和执行者解耦 Command接口 两个命令类的例子 LightOnCommand StereoOnCommand NoCommand CommandMod 阅读全文
posted @ 2020-02-02 13:58 KrisTse 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 观察者模式:对象之间多对一依赖的一种设计方案,被依赖的对象为Subject,依赖的对象为Observer,Subject通知Observer变化 生活中的例子就是:订报纸、顶牛奶 案例一:气象站 一个普通的方案: 气象站类 java package com.java.test.internetwea 阅读全文
posted @ 2020-02-02 13:57 KrisTse 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 案例1 披萨 不好的设计 所有披萨的父类 一种披萨 另一种披萨 OrderPizza 这里不好的问题在于每加一种新的披萨,这个类里面也要相应的修改 简单工厂模式方案 工厂类 新的OrderPizza 工厂方法模式 工厂方法模式:定义了一个创建对象的抽象方法,由子类决定要实例化的类。 工厂方法模式将对 阅读全文
posted @ 2020-02-02 13:54 KrisTse 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 两个菜馆合并后的菜单问题 蛋糕店与餐厅合并后,怎么统一管理菜单项目 问题:一个用ArrayList管理菜单,一个用数组管理 传统设计 菜单项 蛋糕店菜单 餐馆菜单 女招待 测试类 阅读全文
posted @ 2020-02-02 13:53 KrisTse 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 远程糖果机监控项目 监控糖果机:地点、糖果库存和当前状态 本地糖果机监控怎么做 远程代理:远程对象的本地代表,通过它可以让远程对象当本地对象来调用。 远程代理通过网络和真正的远程对象沟通信息。 利用Java RMI实现远程代理 代理模式:为一个对象提供一个替身,以控制对这个对象的访问 被代理的对象可 阅读全文
posted @ 2020-02-02 13:47 KrisTse 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 运行过程中只有一个对象,可防止一个或多个类调用时,产生多个对象,发生错误。 有些对象我们只需要一个:线程池、缓存、硬件设备等 如果多个实例会有造成冲突、结果的不一致性等问题 最典型的例子:打印机打印东西,在学校打印的时候,几台打印机一起工作,如果不使用单例模式,打出来的纸张就会混在一起,这是我实际生 阅读全文
posted @ 2020-02-01 20:38 KrisTse 阅读(136) 评论(0) 推荐(0) 编辑