设计模式
mayifan_blog
湖南大学,电气自动化,自学互联网
展开
-
设计模式之策略模式(面向接口编程)
面向实现编程的弊端举一个简单的动物界的例子,我们需要写一段代码,包含以下要素:鸭子类,鸭子的若干子类,实现一些方法。惯用的编程思路:1、写一个鸭子类Duck,写几个方法,比如鸭子飞行的方法fly(),鸭子叫的方法quack()。2、写鸭子的子类,比如绿头鸭MallardDuck,继承Duck类。3、在子类中重写以上两个方法。这种编程思路的弊端:1、代码冗杂:在代码量少且代码稳定不变...原创 2019-01-06 20:27:48 · 1462 阅读 · 0 评论 -
设计模式之代理模式
什么是代理模式“代理”,为一个对象提供一个替身或者占位符以访问这个对象。关系示意图如下:当我希望调用被代理者的某个方法时,需要经过代理这个中间环节,它会决定被代理者的哪些方法可以被调用,哪些方法,不能被调用,或者为被代理者加上一些别的行为。一、远程调用(RMI)当需要引用一个对象,而这个对象处于另一个虚拟机上,这时就需要使用远程调用,远程调用的思想就是通过RMI通信获取远程对象的信息,在...原创 2019-01-29 17:18:46 · 242 阅读 · 0 评论 -
设计模式之状态模式
什么是状态模式概念引入:状态模式是一种基于状态设计行为的模式。当我们需要设计这样一个系统:这个系统有许多状态,且对这个系统进行操作的有许多种方法,在系统的不同状态下,执行这些操作会导致不同的结果。这时就需要状态模式的设计理念来组织我们的代码了,以应对在多操作种类下的多状态之间的转化。直接来分析一个例题,试着用状态模式的理念去实现。如图:简单分析一下:这是一个与糖果贩卖机有关的题,糖果贩卖...原创 2019-01-28 22:30:45 · 203 阅读 · 0 评论 -
设计模式之模板方法模式
什么是模板方法模式概念:模板方法,顾名思义,就是提供一个模板给子类使用,执行这个方法,会按照一套既定的流程去执行,模板方法规定了方法执行过程中需要经历的步骤,这些步骤(方法)具体执行什么内容,它并不关心,这些方法可能是继承来的final方法,有可能是需要子类去实现的方法。直接贴出我的代码,模板方法模式的基本结构就一目了然了:public abstract class CaffeineBever...原创 2019-01-28 17:24:24 · 322 阅读 · 0 评论 -
设计模式之MVC
什么是MVCMVC三个单词分别是model(模型)、view(视图)、control(控制),MVC设计模式的特点就是把模型、视图、控制三个部分的代码分开写,使得各个部分最大限度地实现松耦合,视图部分持有模型部分和控制部分的引用,控制部分持有视图部分和模型部分的引用,而模型部分不持有它们的引用。如果要实现模型对视图的影响,可以使用观察者模式,在模型中注册视图的观察者对象,当有信息更新的时候可以通...原创 2019-02-02 23:18:47 · 398 阅读 · 0 评论 -
设计模式之适配器模式(ArrayList实现队列)
什么是适配器模式概念:适配器模式是指通过一个适配器的中间环节使得一个类的方法被包装为另一个类的方法。如图:我们希望调用接口A的方法,当没有接口A提供,而只有与它相似的接口B可以使用,这时就需要使用到适配器。在工作中,可能需要维护一些比较老旧的代码,为了适应新的需求,且不去重写代码的情况下,就可以加上适配器这个中间环节,使得过时的代码满足客户的需求。适配器模式在Java中具体体现为方法的封装,...原创 2019-01-28 02:57:36 · 500 阅读 · 0 评论 -
设计模式之工厂模式
简单工厂概念:在Java代码中,我们不希望把对象的创建和逻辑代码混在一起,而是希望把对象的创建封装在一个接口中,调用这个接口(方法)就可以返回一个被实例化的对象。这样的好处是使得代码逻辑清晰,功能模块分离,增加代码的可读性和可修改性,比如这个方法:Pizza pizza = nyStore.createPizza("cheese");public Pizza createPizza(Stri...原创 2019-01-22 14:15:30 · 145 阅读 · 0 评论 -
设计模式之命令模式
命令模式的概念命令模式把请求封装成对象,这让你可以使用不同的请求,队列或者日志来参数化其他对象,命令模式也支持撤销操作。命令模式包括三大组成部分:命令的执行者,命令,命令的发出者。通过具体的命令来实现命令的发出者和执行者之间的解耦,命令的发出者只负责管理和调用这些命令,而不关心命令的具体内容是什么;同样,命令的执行者只知道执行自己的方法,而不知道方法在上层被如何调用;命令这个环节灵活性很强,它...原创 2019-01-25 13:47:24 · 201 阅读 · 0 评论 -
设计模式之装饰者模式
装饰者模式的概念装饰者模式的基本形式是把一个类对象的引用作为参数传入另一个类的对象的构造方法中,然后以此类推,形成一条引用链,实现对象的多层包装,实现了把有限的类包装成众多有复杂功能的类,实现更多丰富的功能。在Java中比较常见的装饰者模式是Java的util包中的IO,比如IO字节流的超类InputSream可以包装为文件字节流FileInputStream,缓冲输入流BufferedInpu...原创 2019-01-09 14:52:12 · 155 阅读 · 0 评论 -
设计模式之观察者模式
什么是观察者模式观察者模式是指对象之间的关系为一对多的关系,比如杂志和读者的关系,众多的读者和某一杂志之间是一对多的关系,当读者没有订阅这个杂志的时候,两者是没有联系的,如果读者订阅了杂志,那么当杂志内容有更新的时候,它就会通知读者并且把新的内容及时发送给读者,读者如果觉得不喜欢这个杂志了,也随时可以取消订阅,自然也得不到新的消息通知了。观察者模式涉及到了一种松耦合的概念,读者是观察者,杂志就是...原创 2019-01-08 15:14:38 · 137 阅读 · 0 评论 -
设计模式之迭代器模式和组合模式
迭代器模式和组合模式什么是迭代器模式:这个模式主要是基于迭代器的扩展设计而形成的一种模式,迭代器的常用方法是hasNext()和next()方法,前者判断有没有下一个元素,后者表示取出下一个元素,在Java集合框架中,我们可以发现,其实所有集合的超类Collection实现了Iterator接口:public interface Collection extends Iterable也就是说,...原创 2019-01-29 19:43:56 · 566 阅读 · 0 评论