设计模式
文章平均质量分 78
「已注销」
这个作者很懒,什么都没留下…
展开
-
入门设计模式之外观
学习更多设计模式请参考:入门设计模式之汇总篇外观模式:外部系统与子系统的通信必须通过一个统一的对象进行举个例子,现在结婚是不是都找婚庆公司啊,为什么呢?因为如果不找婚庆公司自己筹备的话,我们可能得自己跑去订酒店,自己去找主持人,自己去找摄像,自己去找车队。是不是太麻烦了点,而有了婚庆公司就不一样了,我可以吩咐他去找酒店,找主持人等等。。。来看一下类图:在这里Facade就相当于婚庆公司的角色,我们...原创 2018-07-01 00:41:19 · 333 阅读 · 0 评论 -
入门设计模式之桥梁
学习更多设计模式请参考:入门设计模式之汇总篇桥梁模式:将抽象化与实现化脱藕,使二者可以独立的变化大家应该对日志记录比较熟悉,不知道有没有自己写过一个日志处理的程序,你又是如何实现的呢?今天的桥梁模式就根据一下需求来分析一下:支持2个以上平台支持2个以上格式大家可以看一下这个需求哈,2个以上,那我就实现2个呗,一般人可能都会这样想。然后开始写,比如Windows存Txt格式、Windows存Xml格...原创 2018-07-01 00:41:51 · 328 阅读 · 0 评论 -
入门设计模式之策略
学习更多设计模式请参考:入门设计模式之汇总篇策略模式:使算法在不影响客户端的情况下发生变化。例如某宝上的一件商品,有时候8折并返现3元、有时候7折返现1元、有时候9折不返现、有时候不打折返现2元等等,我们可以看到这个商品不同时刻要计算利润或者什么的时候是不一样的,现在就可以用到策略模式了。代码:public abstract class Algorithm { public abstrac...原创 2018-07-01 00:42:16 · 337 阅读 · 0 评论 -
入门设计模式之模板
学习更多设计模式请参考:入门设计模式之汇总篇模板方法:在一个抽象类中定义一部分的实现,其余的定义抽象方法迫使子类实现相信看了上方的定义以后大家已经理解了模板模式,我们来看一下类图抽象类定义了4个方法,其中operation是私有的,在这个方法里调用了其他三个方法,而方法3是自己实现的。方法1和2是强迫子类实现的。ClassImpl1,ClassImpl2都继承了抽象类,并分别对方法1和2进行了不同...原创 2018-07-01 00:42:42 · 335 阅读 · 0 评论 -
入门设计模式之观察者
学习更多设计模式请参考:入门设计模式之汇总篇观察者模式:多个观察者对象同时观察一个主题对象,当这个主题对象发生变化时,会通知所有的观察者来看一下下方类图Subject:主题类,所有主题的父类,负责对观察者的管理,有添加观察者,删除观察者,通知所有的方法SubjectImpl:主题子类,拥有状态属性,当状态改变时会调用父类的notifyObserver方法通知所有观察者Observe:观察者,定义了...原创 2018-07-01 00:43:14 · 309 阅读 · 0 评论 -
入门设计模式之汇总篇
入门设计模式之单例注意一下文章都伴有UML图,不了解的同学请先参考一下:这个几分钟几张图教你学会如何使用UML入门设计模式之建造者入门设计模式之原型入门设计模式之工厂入门设计模式之观察者入门设计模式之模板入门设计模式之策略入门设计模式之桥梁入门设计模式之外观入门设计模式之享元入门设计模式之代理入门设计模式之合成入门设计模式之装饰入门设计模式之适配器持续更新中。。。。。。。。。。。。入门设计模式之单...原创 2018-07-01 00:44:08 · 495 阅读 · 0 评论 -
入门设计模式之责任链模式
学习更多设计模式请参考:入门设计模式之汇总篇 责任链模式:很多对象由每一个对象对其下家的引用而连接起来行成的一条链。其实责任链模式一直在我们的身边。某一天,董事长有个想法,他吩咐给了经理,经理吩咐给了组长,组长分配给了你我。这时候我们发现,我们没有下级了呀,咋办,那就干呗。上方这个任务分配的过程就是责任链模式,一个事件会一直向下层传递,董事长并不关心是谁解决的这个问题,对他来说只要问题解决了就行。...原创 2018-07-02 22:02:55 · 301 阅读 · 0 评论 -
入门设计模式之命令模式
学习更多设计模式请参考:入门设计模式之汇总篇 命令模式:把命令包装成对象,将命令发送者和命令接受者的耦合降低举个例子,皇帝发圣旨招一个大臣入宫。这里的皇帝就是客户端,而圣旨就是命令,大臣就是命令接受者。那么命令发送者通常都是某个公公对吧。这里就是一个命令模式的实践,为什么这样说呢?平常我们写代码都是一个方法直接调用另一个方法,这样耦合性太高了,你总不能让皇帝跑到大臣家告诉他找他有点事吧,要是都这样...原创 2018-07-03 21:12:14 · 291 阅读 · 0 评论 -
入门设计模式之备忘录模式
学习更多设计模式请参考:入门设计模式之汇总篇 备忘录模式:在不破坏封装的条件下,将一个对象的状态捕捉住,并在外部化存储起来,从而可以在将来合适的时候把这个对象还原到存储时的状态。 通常的备忘录模式包含3个角色:发起人角色:这个角色就是需要被保存状态的角色 备忘录角色:负责保存发起人角色的状态的对象 负责人角色:负责保存备忘录对象,且它不能看到备忘录的内容 我们...原创 2018-07-04 22:23:41 · 289 阅读 · 0 评论 -
入门设计模式之状态模式
学习更多设计模式请参考:入门设计模式之汇总篇 状态模式:允许一个对象在其内部状态改变时改变其行为。 举一个简单的小例子,我们在对一个小姐姐搭讪的时候,根据小姐姐的心情如何我们可能会得到不同的回复。 看一下类图 Girl:抽象状态接口:用于封装男孩对象搭讪小姐姐获得回复的接口 AngryGirl、HappyGirl:两个状态实现类...原创 2018-07-05 21:43:53 · 285 阅读 · 0 评论 -
入门设计模式之享元
学习更多设计模式请参考:入门设计模式之汇总篇享元模式:以共享的方式高效的支持大量的细粒度对象我们以咖啡为例,一家咖啡店一天卖出几千杯咖啡其实这几千杯也不过是几十种口味。在Java中你觉得是new几千次咖啡好还是new几十次口味好呢?享元模式就是利用的这个原理来共享的变量了。来看一下类图:FlavorFactory:口味工厂,根据客户所需口味生产咖啡Client:售货员,负责通知工厂生产咖啡,以及出...原创 2018-07-01 00:40:52 · 306 阅读 · 0 评论 -
入门设计模式之代理
学习更多设计模式请参考:入门设计模式之汇总篇代理模式;给某个对象提供一个代理对象,由代理对象持有对原对象的引用。代理模式就比较符合中国人含蓄的性格,假如有个姑娘想要找个对象,但是直接满大街去喊我要找对象的不是很多吧。大部分的女孩还是倾向于先去找一个媒人,让媒人来给自己介绍对象。这里的媒人其实就是女孩的代理对象了。先来看一下类图:我们可以看到女孩跟媒人都实现了一个相亲的接口,然后呢媒人持有女孩的引用...原创 2018-07-01 00:40:21 · 311 阅读 · 0 评论 -
入门设计模式之工厂模式
简单工厂:入门级的设计模式之一,也是学习工厂模式的的基础。需求:假如我们需要去相亲,介绍人跟你说了,我这次给你找了很多个小姑娘,随便挑哦。听到这句话你就好奇了,哎呦,你好厉害呀,怎么做到的呢,下面我们就来看看介绍人是怎么做到吧。注:不熟悉UML的同学请参考此文章:几分钟几张图教你学会如何使用UML首先最上方就是所有女孩必须要实现的接口,它定义了一个自我介绍的方法,所有的女孩都要实现它。下面给出的两...原创 2018-06-30 14:07:56 · 360 阅读 · 0 评论 -
入门设计模式之单例模式
学习更多设计模式请参考:入门设计模式之汇总篇了解单例模式之前我们先来了解一下单例模式的三个要点:1.一个类只能有一个实例(就是只需要new一次呗)2.它必须自行创建这个实例(就是构造方法不对外暴露呗)3.它必须向整个系统提供这个实例(就是获取实例的方法是静态的呗)其实通过分析上方三个要点我们就已经了解了单例模式了。也就是说我们只要满足上方的要求就算是一个单例了。按照上方的要点这里给出几个例子供大家...原创 2018-06-30 14:12:19 · 286 阅读 · 0 评论 -
入门设计模式之建造者模式
学习更多设计模式请参考:入门设计模式之汇总篇引言:建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而利用一个建筑过程生成具有不同内部表象的对象。初次读来这句话可能晦涩难懂,待我们一点点的来剖析它,解开他的神秘面纱。先看下图:Builder:抽象建造者,给出了建造接口,这里我们以造房子为例,Builder就规定了所有的建筑工人都得会铺地板、砌墙、吊天花板。WorkBuilder1:具体...原创 2018-06-30 14:12:59 · 285 阅读 · 0 评论 -
入门设计模式之原型模式
学习更多设计模式请参考:入门设计模式之汇总篇引言:通过给出一个原型对象来指明所创建的对象的类型,然后复制这个原型对象来创作同类型的对象Java中使用原型模式必须要满足的条件如下:1.对于任何对象都有x.clone()!=x 。(也就是说克隆的对象和原先的对象不是一个对象)2.x.clone().getClass()==x.getClass().(克隆出来的对象跟被克隆的对象是类型一样)3.x.cl...原创 2018-06-30 14:13:56 · 260 阅读 · 0 评论 -
入门设计模式之适配器模式
学习更多设计模式请参考:入门设计模式之汇总篇适配器模式:把一个类的接口转换为客户端需要的另一个接口比如说,我们去相亲,目标中的女孩是会唱歌会跳舞的女孩,但是介绍人说这个女孩只会唱歌,不会跳舞,那你肯定不会满意呀。不过介绍人说,没关系,我有办法。哦?那我们来看看他有什么办法呢上方Girl接口就是我们希望女孩的样子,也就是女孩接口,会唱歌会跳舞。这个SimpleGirl就是介绍人一开始说的只会唱歌的女...原创 2018-06-30 14:32:37 · 283 阅读 · 0 评论 -
入门设计模式之合成模式
学习更多设计模式请参考:入门设计模式之汇总篇合成模式的职责是将对象组织到树结构中观察上方类图:interface,一个接口定义了一个获得当前对象名字的方法leaf:树中的叶子节点,实现了interfaceBranch:树枝节点,不仅实现了getName方法,同样它本身具有添加节点删除节点的方法且本身可以包含多个树枝节点以及叶子节点通过上述结论我们可以发现其实合成模式就是树的结构的实现本文出自htt...原创 2018-06-30 14:56:12 · 439 阅读 · 0 评论 -
入门设计模式之装饰
学习更多设计模式请参考:入门设计模式之汇总篇装饰模式:以对客户端透明的方式扩展对象的功能装饰模式类图如下:我们分析一下类图:Girl:女孩接口,定义了一个getName()方法XiaoWang:女孩的实现类,她实现了getName方法,Decorator:装饰类,当我们想要扩展小王的方法时,又不能改变她的代码,也不推荐使用继承,那么这个时候装饰类就上场了。此装饰类对小王进行了包装,由他来提供小王的...原创 2018-07-01 00:39:45 · 319 阅读 · 0 评论