设计模式
文章平均质量分 74
诸葛财财
热爱技术,加油
展开
-
设计模式8:组合模式
组合模式定义:将对象组合成树形结构,表示层次结构关系,并且让对象能够以同样的方式呈现给客户端程序。在前面几篇介绍代理模式,桥接模式等模式的时候,我都会先举个实际场景,然后先介绍一种解决方案,接着指出这种方案的不足之处,最后再引出我们的xxx模式。但是我们接下来的组合模式就不采取这种讲解模式啦,因为它要解决的场景基本上没有其他的用来反衬的方案啦。记住一点,凡是碰到有树形结构的关系的场景,...原创 2018-09-23 10:51:05 · 95 阅读 · 0 评论 -
设计模式6:代理模式
代理模式何为代理模式?顾名思义可以简单理解为代为管理,代理模式就是为其他对象提供额外服务,控制访问(前置处理),或做善后处理(后置处理)。有了代理之后,可以在原来功能的基础上由代理完成另外一部分事情。这么说估计还是有点难理解,那我举个简单栗子吧。比如英雄联盟周年盛典要邀请周杰伦去现场唱歌,显然举办方要直接联系到周杰伦可能会有点复杂,所以举办方可以先联系到杰伦的经济人,谈好价钱后再由经纪人安...原创 2018-09-21 10:35:36 · 99 阅读 · 0 评论 -
设计模式13:模板方法模式
模板方法概念:定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤本质:分离算法,选择实现。即处理步骤父类中定义好,具体实现延迟到子类中定义其实这个蛮好懂啦,设想一下,当你和某个老哥一起去银行办理业务,你办理贷款,他办理存款业务,一般来说,你们去了的第一件事情都是排队,轮到你们了你们再去办理各自要办理的业务,办理好后就离...原创 2018-09-26 16:34:39 · 110 阅读 · 0 评论 -
设计模式5:原型模式
原型模式用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。说简单点,就是我们程序员的CV大法了既然是复制一个对象,那么直接new一个然后赋值不就完skr了吗,为什么还要搞出个原型模式这个幺蛾子呢图样图森破!如果一个对象有十几二十个属性,如果new出来再一一赋值,岂不是很难受?所以原型模式就应运而生了。如何实现Cloneable接口和clone方法Pr...原创 2018-09-20 15:37:07 · 190 阅读 · 0 评论 -
设计模式4:建造者模式
建造者模式是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。上面是一个比较官方的解释,那么什么算是复杂的对象呢?复杂没有一个明确的定义,一般来说,当我们要构建的对象里面包含多个组件,就可以认为它是一个复杂的对象,比如我们的手机,电脑,神舟飞船等,他们都是由各种组件组合起来形成的产品。以神舟飞船为例,它有轨道舱,逃逸塔和发动机等组成,这些组件不是我们最终想要的,我...原创 2018-09-20 10:23:52 · 133 阅读 · 0 评论 -
设计模式3:工厂模式
工厂模式在简单的开发中,如果我们要获取一个类的实例,直接new出来就完skr了,但是当对象的实例化过程非常复杂,需要初始化很多参数或者这个类有很多子类的时候,这时候我们直接用new的话就很不方便,这时候我们不妨把复杂的对象实例化交给一个工厂来处理,我们不比关心它是如何初始化的,我们在用的时候直接调用它,直接从工厂获取就行了,这便是我们的工厂模式。目的实现解耦,将对象的创建和使用分离,也...原创 2018-09-19 23:07:42 · 111 阅读 · 0 评论 -
设计模式2:单例模式
单例模式确保一个类中只有一个实例,自行实例化并向整个系统提供这个实例,这个类被称为单例类,它提供全局的访问方法特点在类中只有一个实例,并提供一个静态的getInstacne()方法用于外界唯一访问这个实例防止在外部对其实例化,构造函数私有化在单例类内部定义了一个Singleton类型的静态对象,作为外部共享的唯一实例举例windows操作系统中的任务管理器,回收站等,在...原创 2018-09-19 17:44:31 · 101 阅读 · 0 评论 -
设计模式12:装饰者模式
装饰者模式装饰器模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。怎么说?老样子,先设想个场景假如我要去楼下买手抓饼吃,一般来说,手抓饼都会提供不同的配料,比如加鸡蛋,加鸡柳,加肉松或者加火腿,不同的配料价钱也不同是不是感觉饿啦哈哈哈哈,我们继续...如果我们要用编程语言来描述的话,...原创 2018-09-24 15:01:10 · 105 阅读 · 0 评论 -
设计模式1:适配器模式
啥叫适配器举个栗子,我的是安卓手机,室友的是苹果手机,我的安卓机子只能用我的安卓数据线来充电,而不能使用室友的苹果数据线,但是我想借助某种工具(不知道有没有这种东东...),让我的安卓手机可以用室友的苹果数据线来充电,可以帮我们达到这个目的的工具就是适配器。通俗来说,适配器就是把原来不匹配的东西变成匹配的东西的一个中间件。而适配器模式,就是借用适配器思想的一种开发模式可以分为三类类...原创 2018-09-19 10:04:19 · 146 阅读 · 0 评论 -
设计模式11:责任链模式
责任链模式定义:为了避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止,这就是责任链模式。举个栗子咯,当周杰伦要在你的城市开演唱会时,而你恰好有课,这时候咋办呢?总不能不去吧,所以只有向老师请假咯。而请假的话,是有个流程滴,当你提交申请表给辅导员时,如果天数在两天以内的话,辅导员直接给你批准啦,你就可以开溜啦;...原创 2018-09-23 22:09:21 · 111 阅读 · 0 评论 -
设计模式10:观察者模式
观察者模式在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。人话:其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。想一想微信公众号机制主要角色抽象被观察者角色(Subject):也就是一个抽象主题,它把所有对观察者对象的引用保存在一个集合中,每个主题都可以有任意数量的观察者。抽象主题提供一个接...转载 2018-09-23 15:04:17 · 92 阅读 · 0 评论 -
设计模式9:策略模式
策略模式定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化本质:分离算法,选择实现。看不懂这个神仙一般的定义没关系,老规矩,先搞个反面例子来引出我们的策略模式在暑假的第一天,有几个选择摆在我面前,分别是打英雄联盟,做家务,睡觉,学习。显然每个行为都可以看成是一种行为策略,那么我到底会选择什么呢,这应该根据具体的情况来...原创 2018-09-23 14:35:21 · 133 阅读 · 0 评论 -
设计模式7:桥接模式
桥接模式先上一个稍微官方点的定义:将抽象和行为划分开来,从而将各个可能变化的维度分离开来,各自独立成一个类,但是能够动态的组合。光看上头这个定义的话,除非是神仙,否则肯定是一脸懵逼的。。接下来举个实例吧在开始学java的时候老师讲到继承的时候,总是喜欢用一个例子来讲解,那就是画图,这里有一个画笔,可以画正方形、长方形、圆形(这个大家都知道怎么做吧,我就不解释了)。但是现在我们需要给这些...转载 2018-09-23 09:26:42 · 81 阅读 · 0 评论