
4. 设计模式
敲木鱼的小和尚
热衷于专研技术的大好青年
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式--12--状态模式
一、糖果机项目 智能糖果机,存在不同的状态 待机 投入一元硬币 转动把手 滑落一颗糖果 待机(根据机器内糖果库存情况,是否提示售完) 二、常规代码 创建出 投币方法,转动摇杆方法,返回硬币方法 三个方法,在每个动作里面针对不同的状态作出相应的状态改变 常规代码是以动作作为维度,进行设计,但是如果之后增加了一个状态,加入游戏元素:有10%的概率可以拿到2颗糖果,那么每个方法都需要增加代码...原创 2019-11-16 13:38:50 · 136 阅读 · 0 评论 -
设计模式--11--组合模式
在之前的迭代器模式中,使用迭代器掩盖了内部接口的不同,针对不同的对象进行了遍历,但是如果每个餐厅存在子菜单项,使用迭代器就无法进行遍历,所以需要使用组合模式。比如在中餐,加入甜点子菜单。 餐厅的聚类结构现状 可以解决的结构图 增加甜点之后的结构图 组合模式 组合模式:将对象聚合成树形结构来表现"整体/部分"的层次结构,相比于迭代器的区别,同样的和迭代器一样,组合模式能够让客户以一致的...原创 2019-11-15 20:44:47 · 103 阅读 · 0 评论 -
设计模式--07--适配器模式
适配器 概念:将一个类的接口转换成另一个接口,让原本接口不兼容的类可以兼容 优点: 从用户的角度看不到适配者,是解耦的 用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法,用户收到反馈结构,感觉只是和目标接口交互。 对象适配器:适配器需要实现目标对象的接口,同时,适配器中包含被适配的对象。相当于在适配器,虽然对外展示的是目标对象,但是本质上说还是被适配的对象。使用组合...原创 2019-11-15 13:46:44 · 104 阅读 · 0 评论 -
设计模式--02--观察者模式
一、案例 Internet气象项目 提供温度、气压和湿度的接口 测量数据更新需实时通知给第三方 需要设计开放型API,便于其他第三方公司也能接入气象站获取数据 分析 具体的实例 气象台类,提供气象的信息。包含气象信息跟新方法,当跟新时通知显示板进行跟新信息。 显示板,用于展示不同时候的气象信息,包括两类方法,跟新显示板信息和展示 测试类,在更新气象数据后,通知显示板跟新信息 ...原创 2019-11-14 14:51:08 · 133 阅读 · 0 评论 -
设计模式--10--迭代器模式
需求 蛋糕店和餐厅合并后,怎么统一管理菜单项目 一个用ArrayList管理菜单,一个用数组管理 下面代码中,如果需要新增一个菜谱,则需要在watier中额外的增加代码,后期增加代码成本太高 代码 餐厅类 //面包店菜谱 public class CakeHouseMenu { private ArrayList<MenuItem> menuItems; ...原创 2019-11-13 13:37:54 · 115 阅读 · 0 评论 -
设计模式--09--模板模式
模板模式 概念:封装了一个算法过程,并允许子类为一个或多个步骤方法提供实现。模板模式可以使子类在不改变算法结构的情况下,重新定义算法中的某些步骤。 实现:把固定的流程抽象出来,提给父类,将个性化的接口提出抽象方法,让不同的实现类,实现此方法。并且此抽象方法在流程中进行执行 模板方法结构 固定流程的方法,模板流程 固定的步骤方法 个性化的抽象接口,子类实现此抽象接口,然后实现自己的功能 钩子方...原创 2019-11-08 11:16:53 · 125 阅读 · 0 评论