
设计模式-学习笔记
华仔的逆袭
这个作者很懒,什么都没留下…
展开
-
设计模式_改进策略模式_策略模式与简单工厂模式结合(Java)
上一篇我们介绍了《设计模式_策略模式(Java)》,同时讲述了策略模式与状态模式的区别,如果仔细查看代码或者类图,我们会发现策略模式在一定程度上是存在缺陷的,Client(Test类)必须知道所有的策略类,并自行决定使用哪一个策略类。这就意味着Client必须理解这些算法的区别,以便适时选择恰当的算法类。换言之,策略模式只适用于Client知道所有的算法或行为的情况。这个改进版的就不放类图了,相信你原创 2016-09-22 20:00:53 · 3430 阅读 · 0 评论 -
设计模式_模板方法模式(Java)
模板方法模式(Template),定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。举个栗子:小明想在学习过后去运动或者上会网,那么小明在学习某门课程过后一定会搞点事情,而这些事情是可变化的,谁也不知道他要干什么,所以我们需要在它需要的时候进行“实现”。类图示例代码//package com.dlut.designpatt原创 2017-01-11 11:14:54 · 434 阅读 · 0 评论 -
23种设计模式(Java)--- 持续更新
最近在读《Thinking in Java》,书中在阐述一些知识点的时候就会提及到一些设计模式,正好趁此机会回顾学习学习,并把学习过程和自己收集或者思考的一些知识点、重点拿出来,与大家分享,仅此而已。23种设计模式(Java)— 持续更新按照学习时间顺序:《设计模式_组合模式(Java)》《设计模式_代理模式(Java)》《设计模式_状态模式(Java)》《设计模式_策略模式(Java)》原创 2016-09-23 10:59:37 · 698 阅读 · 0 评论 -
设计模式_策略模式(Java)
策略模式(Strategy):它定义了算法家族,分别进行了封装,让他们之间可以相互转换,这种变化不会影响到使用算法的用户。策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。策略模式就是用来封装算法的,在实践中,可以用它来封装几乎任何类型的规则,在分析过程中需要在不同的时间应用不同原创 2016-09-22 15:16:20 · 987 阅读 · 1 评论 -
设计模式_组合模式(Java)
组合模式(Composite),将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。使用时机:需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑用组合模式了。组合模式基本对象可以被组合成更复杂的组合对象,而这个组合对象又可以被组合,这样不断地递归下去,客户代码中,任何用原创 2016-09-21 12:50:11 · 550 阅读 · 0 评论 -
设计模式_代理模式(Java)
代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。应用: 远程代理,为一个对象在不同的地址空间提供局部代表。隐藏一个对象存在于不同地址空间的事实,如WebService。 虚拟代理,根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。 安全代理,用来控制真实对象访问时的权限。 智能指引,调用真实对象时,代理处理另外的事。类图: 示例代码://packa原创 2016-09-21 13:06:56 · 452 阅读 · 0 评论 -
设计模式_状态模式(Java)
状态模式(State),当一个对象的内在状态改变时允许改变其行为。这个对象看上去就像是改变了它的类一样。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。状态模式的好处:将与特定状态相关的行为局部化,并且将不同状态的行为分割开来。将特定的状态相关的行为都放到一个对象中,由于所有与状态相关的代码都存在于某原创 2016-09-21 16:06:22 · 515 阅读 · 0 评论 -
设计模式_工厂方法模式(Java)
工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到了其子类。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。工厂方法模式是简单工厂模式的进一步抽象和推广,简单工厂模式在原创 2016-09-23 22:22:22 · 492 阅读 · 0 评论 -
设计模式_适配器模式(Java)
适配器模式(Adapter),别名:包装器Wrapper,将一个类的接口转换成Client希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。时机:我们经常会碰到的情况是你无法修改你想要使用的类,这些类库是被发现而非被创建的,在这种情况下,我们可以考虑使用适配器模式。适配器中的代码将接受你所拥有的接口,并产生你所需要的接口。适配器模式主要应用与希望复用一些原创 2016-09-23 19:43:53 · 347 阅读 · 0 评论 -
从代理模式到Java动态代理
在之前的设计模式博文《设计模式_代理模式(Java)》中,介绍了代理模式。它是为了提供额外的操作,而创建的用来替代实际对象的对象,原理和实现都较为简单,在这片文章中我们主要是介绍Java中提供的动态代理。动态代理比代理的思想更向前迈进一步,因为它可以动态地创建代理,并动态地处理对所代理方法的调用。在动态代理上所做的所有调用都会被重定向到单一的调用处理器(InvocationHandler实现)上。在原创 2016-12-23 21:36:13 · 713 阅读 · 0 评论