![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
xiaoxsen
这个作者很懒,什么都没留下…
展开
-
创建者模式
各个品牌的汽车在工厂生好了,现在需要对这些汽车进行试驾,每个品牌的汽车试驾流程不一样,奥迪汽车试驾流程是先启动,在鸣笛,在行驶,最后停车;奔驰试驾流程是先鸣笛,在启动,然后行驶,最后停车;保时捷的试驾流程也不一样,需求可以多变,面对这种情况我们应该怎么实现呢? 来看实现代码吧:抽象汽车类(CarModel)public abstract class CarModel{ private原创 2017-02-28 17:35:42 · 1289 阅读 · 0 评论 -
策略模式
三国演义中,诸葛亮的足智多谋,神机妙算,不得不让人佩服,能把周瑜这种智慧型的人物气死已经十分了得,其中诸葛亮给了赵云3个锦囊妙计让周瑜赔了夫人又折兵的堪称金典,现在用代码来演示一下这个过程。抽象策略类public interface IStrategy{ public void excute();}具体策略类(第一个妙计)public class FristStrategy im原创 2017-03-22 10:08:04 · 1329 阅读 · 0 评论 -
模板方法模式
工厂生产出来的汽车都要经过试驾测试,通过测试才能销售市场,下面我们来模拟汽车试驾过程,假设我们现在只试驾奥迪A6和奥迪A8,示例代码如下: 抽象奥迪车(AudiCar):public abstract class AudiCar{ //发动,测试发动机 public abstract void start(); //按喇叭,测试喇叭 public abs原创 2017-02-27 13:54:11 · 1391 阅读 · 0 评论 -
命令模式
某天接到客户的需求,我们的项目需要增加新需求,项目经理找到需求组同事说我们需要增加一条需求,然后找到UI设计组同事说我们需要增加一条需求做好ui设计,然后跑到代码组同事说我们要增加一条需求赶紧准备撸代码,最后跑到测试组同事说我们要增加一条需求赶紧写好测试用例。我们现在来用代码实现这个过程。 抽象组:public abstract class Group{ //找到改组的人 pub原创 2017-03-07 11:17:02 · 1181 阅读 · 0 评论 -
中介者模式
先看图: 图一 图二 图三 在大公司中,部门越完善,同事之间的关系就越复杂,就比如说你要申请买某个办公设备,需要你领导同意,然后找采购部门同事,采购部门同事需要找财务部门同事,最后买好了才下发到你手上,整个流程之间涉及到多个原创 2017-03-06 15:34:47 · 1353 阅读 · 0 评论 -
抽象工厂模式
工厂方法模式不清楚可以先查看上一篇博文工厂方法模式,这里先看一个工厂方法模式的例子: 抽象产品类( 汽车总称):public interface Car{ //获取车的品牌 public void getCarType(); // 对车进行喷漆 public abstract void paint();}具体产品类(奥迪)原创 2017-02-26 16:33:11 · 1597 阅读 · 0 评论 -
责任链模式
来公司快一年了终于可以去出差了,然而我们公司的出差是去支援工厂,大家应该没有想到吧,支援工厂就是每天两班倒,坐在流水线前左手右手一个慢动作,这里小吐槽一下,哈哈哈。出差回来就是写出差报销流程。公司规定报销金额小于3000直属领导可以批,大于3000小于10000部门领导可以批,大于10000需要boss才能批(每个公司不一样),下面用程序猿的语言来描述这个流程。程序猿:public class Pr原创 2017-03-08 14:20:52 · 1654 阅读 · 0 评论 -
工厂方法模式
最近在读设计模式之禅,今天主要分享一下工厂方法设计模式,这里对工厂方法设计模式做一个总结。 首先以女娲造人故事拉开帷幕,女娲采集黄土捏成人的形状,然后放到八卦炉中烧制,最后放到大地上生长,工艺过程没错,但是意外随时可能发生: 1.第一次拷泥人,感觉应该熟了,往大地一放,哇,没烤熟!于是一个白人诞生了! 2.第二次拷泥人,上一次没有烤熟,这次多烤一会,放到世间一看,嘿,熟过头了,于是原创 2017-02-24 12:51:39 · 1332 阅读 · 0 评论 -
原型模式
我们日常工作中,部门领导需要了解项目进度,存在的问题,就会开个部门例会,此时需要邮件群发到部门各个员工: 邮件模板类:public class MailTemplate{ //邮件主题 private String mailSubject = "请软件部来301室开会"; //邮件内容 private String mailContext = "梳理一下项目上存在原创 2017-03-02 18:11:41 · 1509 阅读 · 0 评论 -
单例模式
一、单例模式定义 单例模式定义:Ensure a class has only one instance ,and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例)。 二、单例模式的优点 1.单例模式在内存中只有一个实例,减少内存开支 2.单利模式只有一个实例,减少了系统性能开销原创 2017-02-23 19:36:24 · 1289 阅读 · 0 评论 -
设计模式6大规则
设计模式规则原创 2017-02-22 17:18:07 · 1446 阅读 · 0 评论 -
代理模式
LOL相信大家都玩过吧,我大学同学现在已经是最强王者了,在学校段位重置时都会叫他帮我们代打定位赛,前期定位段位越高爬坑越简单,如今大学毕业,大家都各奔东西,但这段经历还是记忆犹新,下面通过代码来演示这个代打定位赛的过程吧。英雄联盟游戏:public interface LOLPlayer{ //登录LOL public void login(String user,String原创 2017-03-01 17:50:11 · 1288 阅读 · 0 评论 -
装饰模式
还依然清晰的记得以前上小学时,每次月考考试卷都要给家长签字,分数考得高时就不担心签名的问题,但是常在岸边走哪有不湿鞋,总有那么几次考不好,然后成绩波动太大,此时给家长签字时轻则一顿逼逼,重则一顿挨揍(当然不是狼妈虎爸一样,一天一顿打,孩子上北大)。有时为了避免这波暴击伤害,我们经常会把分数改一下(65就加一笔变成85)或者说找个理由(试卷太难,大家分数都不高等)。下面有程序猿的语言来描述这段经历。抽原创 2017-03-14 17:46:46 · 1373 阅读 · 0 评论