Java设计模式
韩师学子--小倪
不要告诉别人你的计划,只需要让别人知道结果就行了。
展开
-
设计模式--状态模式
设计模式--状态模式 状态模式原理一个糖果机项目CandyMachinepublic class CandyMachine { final static int SoldOutState = 0; final static int OnReadyState = 1; final static int HasCoin = 2; ...原创 2019-02-07 15:11:56 · 254 阅读 · 0 评论 -
设计模式--代理模式
设计模式--代理模式 代理模式原理·远程糖果机监控项目监控糖果机:地点、糖果库存和当前状态本地糖果机监控怎么做`CandyMachine的类由上篇博文状态模式的案例继续下来Monitor import java.util.ArrayList;public class Monitor { private ArrayList<...原创 2019-02-07 20:53:09 · 372 阅读 · 0 评论 -
设计模式--复合模式
设计模式--复合模式 复合模式原理·什么是复合模式模式常一起使用,组合在一个设计解决方案中复合模式在一个解决方案中结合两个或多个模式能解决一般性或一系列的问题某些模式结合使用,并不就是复合模式·复杂鸭子项目多种鸭子,不同鸭子叫声、飞行、游泳方式不同--策略模式鹅,需要加入几只普通的鹅--适配器模式要统计鸭子叫声的次数--装饰者模式统一产生...原创 2019-02-07 22:14:20 · 260 阅读 · 0 评论 -
设计模式--桥接模式
设计模式--桥接模式 •桥接模式原理遥控器项目的设计极简设计方案 代码:Control public interface Control { public void On(); public void Off(); public void setChannel(int ch); publi...原创 2019-02-08 15:03:01 · 173 阅读 · 0 评论 -
设计模式--生成器模式
设计模式--生成器模式 生成器模式原理•度假计划生成项目设计度假计划生成项目介绍度假计划的因素:时间、门票、餐厅、住宿、特殊活动等一个计划就是一个具体对象,要便于扩展思考怎么做复杂对象生成问题•生成器模式原理生成器模式:封装一个复杂对象构造过程,并允许按步骤构造。•代码讲解VacationDayimpor...原创 2019-02-08 17:03:42 · 331 阅读 · 0 评论 -
设计模式--责任链模式
设计模式--责任链模式 •责任链模式原理•购买请求决策项目购买请求决策项目介绍决策因素:价格决策级别:组长、部长、副总、总裁考虑扩展性思考如何设计 •责任链模式原理责任链模式:如果有多个对象都有机会处理请求,责任链可使请求的发送者和接收者解耦,请求沿着责任链传递,直到有一个对象处理了它为止。 •责任链模式优缺点优点:...原创 2019-02-08 19:35:26 · 163 阅读 · 0 评论 -
设计模式--蝇量模式(享元模式)
设计模式--蝇量模式 •蝇量模式原理•景观设计软件项目遇到的问题树:XY坐标,树的大小,外观,需要很多树10000000棵树思考如何设计 传统方式:Treepublic class Tree { private int xCoord, yCoord, age; public Tree(int xCoord, int yCo...原创 2019-02-08 23:28:54 · 306 阅读 · 0 评论 -
设计模式之--解释器模式
设计模式之--解释器模式 •解释器模式原理•大数据统计项目遇到的问题按照计算模型对现有数据统计、分析、预测一般的计算模型是一个或多个运算公式,通常是加减乘除四则运算计算模型需要运行期编辑设计方案要有高扩展性思考怎么设计 •解释器模式原理计算模型按正常算术方式书写,解释器处理语法逻辑计算模型里有两类符号:数据和计算符用...原创 2019-02-09 00:21:08 · 247 阅读 · 0 评论 -
设计模式--中介者模式
设计模式--中介者模式•中介者模式原理•智慧房屋项目遇到的问题 智慧房屋公司的产品:闹钟、咖啡机、电视机、窗帘等思考如何设计:各对象有几种状态改变相互作用如何 •中介者模式原理 中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交...原创 2019-02-09 13:25:21 · 165 阅读 · 0 评论 -
设计模式--备忘录模式
设计模式--备忘录模式 •备忘录模式原理•讨论一个游戏进度状态保存问题 游戏进度保存:对象状态,场景...想想有哪些方式:SharedPreferences、Sqlite、Server思考如何设计 •备忘录模式原理备忘录模式:在不破坏封装的前提下,存储关键对象的重要状态,从而可以在将来把对象还原到存储的那个状态•备忘录模式优...原创 2019-02-09 14:41:55 · 236 阅读 · 0 评论 -
设计模式--原型模式
设计模式--原型模式 银行的电子账单、广告信:特点:量大、时间要求紧思考如何设计Mail import java.util.Random;public class Mail { private String receiver; private String subject; private String content;...原创 2019-02-09 18:02:19 · 164 阅读 · 0 评论 -
设计模式--访问者模式
设计模式--访问者模式•雇员管理系统遇到的问题雇员管理系统遇到的问题:需要添加一些新的操作功能思考如何设计Employee public class Employee { private String name; private float income; private int vacationDays; private i...原创 2019-02-09 18:55:36 · 256 阅读 · 0 评论 -
设计模式--组合模式
设计模式--组合模式 组合模式原理餐 厅菜单聚类结构现状添加餐后甜点子菜单困难:数据结构?怎么遍历?思考餐厅菜单新需求导致的遍历困难结构抽象 需要用树形结构,节点是菜单或子菜单,叶子是菜单项需要能够在各个菜单项之间游走,遍历要能够有弹性的在菜单项之间游走组合模式的原理和设计方案组合模式...原创 2019-02-07 14:09:30 · 121 阅读 · 0 评论 -
设计模式--迭代器模式
设计模式--迭代器模式 迭代器模式原理两个菜馆合并后的菜单问题蛋糕店与餐厅合并后,怎么统一管理菜单项目问题:一个用ArrayList管理菜单,一个用数组管理传统设计MenuItempublic class MenuItem { private String name,description; private boolean ...原创 2019-02-06 23:20:58 · 147 阅读 · 0 评论 -
单例模式的七种写法
单例模式的七种写法转载:http://cantellow.iteye.com/blog/838473第一种(懒汉,线程不安全):public class Singleton { private static Singleton instance; private Singleton (...转载 2018-12-25 14:21:57 · 171 阅读 · 0 评论 -
设计模式--策略模式
设计模式--策略模式 策略模式原理 1、模拟鸭子项目从OO的角度设计这个项目,鸭子超类,扩展超类:public abstract class Duck { public void Quack() { System.out.println("~~gaga~~"); } public abstract void display(); public v...原创 2019-02-02 10:01:02 · 175 阅读 · 0 评论 -
设计模式--观察者模式
设计模式--观察者模式观察者模式原理 1、Internet气象站项目,普通OO设计方案,有些问题 提供温度、气压和湿度的接口 测量数据更新时需实时通知给第三方 需要设计开放型API,便于其他第三方公司也能接入气象站获取数据 CurrentConditionspublic class Curr...原创 2019-02-02 22:33:39 · 138 阅读 · 0 评论 -
设计模式--装饰者模式
设计模式--装饰者模式 装饰者模式原理 一、咖啡馆订单系统项目 1)、咖啡种类:Espresso、ShortBlack、LongBlack、Decaf 2)、调料:Milk、Soy、Chocolate 3)、扩展性好、改动方便、维护方便二、装饰者模式原理三、新的项目设计方案递归调用计...原创 2019-02-03 15:36:58 · 169 阅读 · 0 评论 -
设计模式--单例模式
设计模式--单例模式 经典单例模式原理单例模式的意义有些对象我们只需要一个:线程池、缓存、硬件设备等如果多个实例会有造成冲突、结果的不一致性等问题是否可以用静态变量方式来实现?或者程序员之间协商个全局变量?Yes单例模式:确保一个类最多只有一个实例,并提供一个全局访问点经典单例模式实现原理经典单例模式代码示例·经典单...原创 2019-02-03 17:08:55 · 136 阅读 · 0 评论 -
设计模式--工厂模式
设计模式--工厂模式 简单工厂模式一个披萨项目的方案设计 披萨项目:要方便披萨品种的扩展、要便于维护、要能运行时扩展披萨族设计:披萨工厂设计:if...elseif...else有哪些不足?违反了开-闭原则,需要对原代码进行改变Pizzapublic abstract class Pizza { prot...原创 2019-02-03 18:46:39 · 187 阅读 · 0 评论 -
设计模式--命令模式
设计模式--命令模式 命令模式原理家电自动化遥控器API项目:各家电API遥控器接口要求自动化遥控器:扩展性好、维护性好·传统设计方案实现如下Light灯设备public class Light { String loc = ""; public Light(String loc) { this.loc = loc;...原创 2019-02-03 21:27:26 · 260 阅读 · 0 评论 -
设计模式--适配器模式
设计模式--适配器模式 现实生活中一些适配器例子·用火鸡冒充鸭子演示代码Duck public interface Duck { public void quack(); public void fly();}GreenHeadDuckpublic class GreenHeadDuck implements ...原创 2019-02-06 11:03:25 · 228 阅读 · 0 评论 -
设计模式--外观模式
设计模式--外观模式 外观模式原理·一个家庭影院项目组建一个家庭影院:DVD播放器、投影仪、自动屏幕、环绕立体声、爆米花机·传统的控制接口设计直接用遥控器:统筹各设备开关开爆米花机放下屏幕开投影仪开音响开DVD,选dvd去拿爆米花调暗灯光播放观影结束后,关闭各种设备·外观模式的原理和设计外观模式:提供一个统一的接口,来访...原创 2019-02-06 15:22:13 · 261 阅读 · 0 评论 -
设计模式--模板模式
设计模式--模板模式 模板模型原理泡咖啡与泡茶的算法泡咖啡步骤: 泡茶步骤:水烧开 水烧开冲泡咖啡粉 冲泡茶叶把咖啡倒入杯子 ...原创 2019-02-06 19:40:01 · 204 阅读 · 0 评论 -
设计模式--最后总结
设计模式--最后总结 •设计模式的三个分类•什么是设计模式模式:在某些场景下,针对某类问题的某种通用解决方案场景:项目环境问题:约束条件,项目目标等解决方案:通用、可以复用的设计,解决约束,达到目标 •设计模式的三个分类创建型模式:对象实例化的模式,创建型模式解耦了对象的实例化过程结构型模式:把类或对象结合在一起...原创 2019-02-09 19:10:46 · 248 阅读 · 0 评论