设计模式
文章平均质量分 87
LiC_07093128
这个作者很懒,什么都没留下…
展开
-
设计模式->创建型模式->工厂方法模式
创建型模式共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式原创 2017-01-22 00:04:56 · 390 阅读 · 0 评论 -
设计模式->行为型模式->策略模式
1.定义:定义了一组算法并分别封装,使彼此之间可以相互替换,该模式下算法的变化不会影响到使用算法的客户端2.UML3.涉及角色1.抽象策略:该组算法的最上层接口,定义了该组算法需要实现的行为2.具体策略:具体行为的实现者,是抽象策略的子类3.策略上下文:持有抽象策略实例,屏蔽高层模块对具体策略的直接访问,封装了可能存在的变化,有承上启下的作用4.优点原创 2017-06-04 20:38:21 · 236 阅读 · 0 评论 -
设计模式->结构型模式->享元模式
1.定义:该模式是池技术的基础,运用共享对象有效的支持大量细粒度对象细粒度对象该对象的性质基本相同或者相似且对象很多将细粒度对象分为两部分1.1内部状态存储在享元对象内部的,并且不会随着环境的改变而改变,一个享元可以具有内蕴状态并可以共享。1.2外部状态是随环境的改变而改变的、不可以共享的。享元对象的外部状态必须由客户端保存,并在享元对象被创建之后,在需要使用的时候再传入到原创 2017-06-01 21:28:20 · 381 阅读 · 0 评论 -
设计模式->行为型模式->模版方法模式
1.定义:定义了一个操作中的算法结构,将某些步骤延迟大子类,使得子类可以不改变该算法机构的前提下从新定义该算法中某些特定的步骤2.UML3.涉及角色1.抽象模版:定义了该算法结构具有的行为,行为分为 1.基本行为:该类行为延迟到子类,也就是说子类负责具体的实现 2.模版行为:负责对基本行为的使用并在该处固化具体的原创 2017-06-06 22:31:58 · 344 阅读 · 0 评论 -
设计模式->行为型模式->责任链模式
1.定义:是多个对象都能够处理请求,避免请求发送者和处理者之间的耦合。将请求处理对象连成一条链,请求将会沿着该链传递并最终被处理2.UML3.涉及角色1.抽象请求处理角色:一般为抽象类,定义类处理请求的行为,该类持有自己的实例。该实例具体含义为下一个处理请求的对象2.具体请求处理角色:请求处理的行为的具体实现者4.优点1.请求和处理分开实现两者之间的解耦,请原创 2017-06-20 21:48:31 · 367 阅读 · 0 评论 -
设计模式->行为型模式->迭代器模式
1.定义:提供一种方法访问容器对象中的各个元素,但是不暴露容器中对象的内部细节2.UML3.涉及角色1.抽象迭代器角色:定义了遍历以及访问容器对象的行为2.抽象容器角色:定义了对容器的操作以及获得该容器迭代器的行为3.具体迭代器:抽象迭代器具体子类,即遍历以及访问容器对象具体逻辑的实现者4.具体角色容器:容器操作具体逻辑以及获得迭代器的具体实现4.优原创 2017-06-21 23:36:06 · 298 阅读 · 0 评论 -
设计模式->行为型模式->备忘录模式
1.定义:在不破坏封装性的前提下,捕获一个对象的部分状态并在该对象之外保存这些状态。这样可以将该对象回复到原先保存的状态2.UML3.涉及角色1.发起人角色:负责创建备忘录,用以记录当前时刻的状态并可食用备忘录回复状态。发起人根据需要可以将部分或者全部信息存储到备忘录中2.备忘录角色:负责存储发起者角色的状态并可防治除发起者角色之外的对象修改状态。需要注意的是:备忘录角原创 2017-06-27 23:19:02 · 285 阅读 · 0 评论 -
设计模式->行为型模式->状态模式
1.定义:当一个对象的内部状态改变时允许改变其行为,这个对象看起来像是改变了其类2.UML3.涉及角色1.抽象状态角色:一般为抽象类或者接口。封装了当前Context的一个特定状态下的相关行为,即一个Context和一个状态关联,该状态决定了具体的行为2.环境角色:客户端需要的角色并且负责具体状态的切换主要职责:维护一个Status实例,该实例就是当前的状态.次原创 2017-07-04 21:52:12 · 306 阅读 · 0 评论 -
设计模式->行为型模式->命令模式
1.定义:将一个请求封装成一个对象,从而可以用不同的请求对客户进行参数化;对请求排队或者记录请求日志以及支持可撤销的操作2.UML3.涉及角色1.抽象命令角色:定义了所有需要执行的命令即命令集体的行为eg:执行,回滚,撤销等2.抽象接接收者角色:接受者需要处理对应的业务逻辑,知道如何执行一个请求相关的操作3.具体命令角色:持有接收者的实例,调用接收者的具体操作完成命原创 2017-06-26 22:51:10 · 407 阅读 · 0 评论 -
设计模式->行为型模式->访问者模式
1.定义:作用于某对象结构中的各个元素的操作,可以在不改变元素类的前提下定义作用于这些元素的新操作2.UML3.涉及角色1.抽象访问者:定义了访问者需要访问的元素,该元素采用参数的形式声明,违背依赖倒置原则2.具体访问者:实现抽象访问者声明的操作,实现算法的一部分 该算法片段对应于结构对象中类3.抽象元素:该类中的方法有两种 1自有方法2接受访问者访问的方法,接受访原创 2017-08-25 00:31:15 · 352 阅读 · 0 评论 -
设计模式->结构型模式->组合模式(部分-整体模式)
1.定义:将对象组合成树形结构以表示"部分-整体"的层次结构,该模式时客户端对部分和整体的访问具有一致性。原创 2017-05-17 22:57:00 · 422 阅读 · 0 评论 -
设计模式->行为型模式->观察者模式
1.定义:又称订阅/发布模式,定义了对象间一种一对的的依赖关系,使得每当一个对象状态改变时,所有依赖它的对象都会得到通知并自动更新该模式下行为的继承>类型的继承。抽象观察者和具体观察者之间属于行为继承2.UML(推模式)3.涉及角色1.抽象主题(被观察者):含有抽象观察者的聚集,并实现了对该具体的操作主要涉及对观察者的删除/新增。管理观察者以及通知观察者。2.抽象观原创 2017-06-13 22:33:53 · 282 阅读 · 0 评论 -
设计模式->结构型模式->装饰者模式
1.定义:动态的给一个对象添加一些额外的职责,就增加功能来说该模式比生成子类更加灵活。类型的继承 > 行为的继承2.UML:3.涉及角色 抽象组件角色:一般为抽象类或者接口主要定义了最原始最核心的行为 具体组件角色:抽象组件行为的具体实现,该实现也是最原始最核心的,其实可以理解为最基本的行为。该角色也是后续需要装饰的对象即被装饰者原创 2017-06-04 18:56:02 · 432 阅读 · 0 评论 -
设计模式->创建型模式->抽象工厂模式
产品族:'位于不同产品等级结构中,功能相关联的产品组成的家族.一般是位于不同等级机构中的相同位置.每一个产品族中含有产品的数目和产品等级结构的数目是相等的.涉及角色:1.抽象产品.存在多个抽象产品,彼此存在联系2.具体产品.肯能存在多个具体产品3.抽象工厂.含有创建产品实例的方法,方法的返回值必须是抽象产品类型,这也是该模式的核心所在4.具体产品工厂:实现了抽象工厂.在该工原创 2017-01-24 22:31:59 · 415 阅读 · 0 评论 -
设计模式遵循原则
在具体的设计模式之前需要说一说设计模式遵循的几个原则1.开闭原则 Open Close Principle从字面理解是冲突的,但是所谓的开闭是不同方向的.对扩展开放,对修改关闭.扩展开放:模块功能是可以扩展的,当需求发生变化时候,我们需要对模块做出扩展.使模块具备需求中定义的新行为修改关闭:当需求发生变化时候导致有新的行为产生时,对现有的模块不允许修改.实现开闭原则的关键在于抽原创 2017-01-21 14:32:22 · 609 阅读 · 0 评论 -
设计模式->创建型模式->简单工厂模式
1.定义:将对象的创建委托给另一个类,客户端只负责消费对象,不负责对象的创建。即定一个用来创建某类对象的类2.UML:3.理论基础:里氏替换原则,继承,多态4.设计角色: 抽象产品:产品对象的抽象,主要定义了产品具有的属性和行为 产品工厂:该模式的核心,主要负责产品的创建,创建方法返回值为抽象产品 具体产品:抽象产品原创 2017-04-16 23:19:57 · 371 阅读 · 0 评论 -
设计模式->创建型模式->单例模式
单例模式有三个要点:1.单例模式主要的特点就是在整个jvm中该类的实例只有一个2.类本身自己创建对象,不允许外界创建对象3.类本身必须自行向系统提供该实例//单例模式 version0.0.001public class SingleIntance { //持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载 private static Si原创 2017-02-09 21:38:37 · 392 阅读 · 0 评论 -
设计模式->结构型模式->桥接模式
1.定义:要求一个子系统的内部与外部的通信只能通过一个统一的对象。此模式提供一个高层接口,使子系统更易使用原创 2017-05-07 13:45:33 · 329 阅读 · 0 评论 -
设计模式->创建型模式->原型模式
1.定义:用原型实例指定创建对象的种类,并通过拷贝现有原型实例创建新实例。通俗的讲就是采用现有实例通过拷贝的方式创建新实例2.UML2.1 通用2.2 UML for JAVA:在java中需要实现该模式只需要实现Cloneable接口并重写该clone()3.理论基础:继承4.涉及角色: 抽象原型类:定义了采用原创 2017-04-20 23:53:38 · 274 阅读 · 0 评论 -
设计模式->创建型模式->建造者模式
1.定义:将一个复杂对象的创建和表示分离,是相同的构建过程产生构建出不同的表示。该模式倾向于流程抽象2.UML3.理论基础:继承,抽象4.涉及角色: 抽象构建者:定义了构建某类抽象产品的具体流程。属于流程的抽象。因为产品是按照流程逐步构建的所以需要提供获得产品的访问点。总结作用主要有1.定义产品构建流程。2.提供获得产品访问点原创 2017-04-23 22:13:10 · 296 阅读 · 0 评论 -
设计模式->结构型模式->代理模式
1.定义:为其他对象提供一种代理以控制对该对象的访问2.UML(通用)3.理论基础:里氏替换原则,继承,多态4.涉及角色: 抽象主题:定义一组和业务相关的操作,一般为接口或者抽象类 真实主题:被代理者或者委托者,真正的业务处理类, 代理:该模式的核心,负责对真实主题的应用,把所有抽象主原创 2017-04-29 00:41:01 · 443 阅读 · 0 评论 -
设计模式->结构型模式->适配器模式
1.定义:将一个类的接口转换成客户希望的另外一个接口,使原本由于接口不兼容而不能一起工作的类可以一起工作2.UML2.1类适配器模式2.2 对象适配器3.理论基础:里氏替换原则,继承,多态4.涉及角色: 目标接口:客户端希望的类型 源接口/源目标:软件单位内存在的类型,实现了具体的功能 适原创 2017-04-24 21:37:07 · 323 阅读 · 0 评论 -
java动态/静态绑定以及双分派
动态绑定:程序在运行期间而不是在编译期间,根据所引用对象的实际类型调用对应的方法,重写以及接口的实现都属于该范畴,使用实际的对象信息来完成API的调用public class DynamicBind { public static void main(String[] args) { Father f = new Father(); f.metho原创 2017-08-25 00:43:06 · 609 阅读 · 0 评论