
设计模式
kgduu
这个作者很懒,什么都没留下…
展开
-
设计模式总结
设计模式总结原创 2022-11-30 23:47:48 · 181 阅读 · 0 评论 -
领域驱动设计笔记
大型结构:原创 2020-11-22 21:24:23 · 197 阅读 · 0 评论 -
java设计模式:Builder模式
Builder模式关键是在建立对象是一步一步处理package customer;class Starbucks{ private String size; private String drink; public void setSize(String size) { this.size = size;原创 2014-12-14 21:29:07 · 1884 阅读 · 0 评论 -
Java设计模式:抽像工厂模式
抽象工厂模式为工厂模式添加了一个抽象层,是创建其它工厂的超级工厂,也称为工厂的工厂。Abstract Factory class diagram/* * To change this license header, choose License Headers in Project Properties. * To change this template file,原创 2014-12-14 20:42:39 · 732 阅读 · 0 评论 -
Java设计模式:工厂模式
工厂模式是根据不同的参数来创建对象。其框图为:package humanfactory;interface Human{ public void Talk(); public void Walk();}class Boy implements Human{ @Override public void Talk() {原创 2014-12-14 20:59:08 · 533 阅读 · 0 评论 -
java设计模式:prototype模式
prototype模式是在对象相似时使用。其是复制对象,并设置新的特征。interface Prototype{ void setSize(int x); void printSize();}class A implements Prototype, Cloneable{ private int size; public A(int x) { this.si原创 2014-12-14 21:43:52 · 700 阅读 · 0 评论 -
java设计模式:Singleton模式
Singleton模式是java中用到最多的设计模式。用于控制的个数,防止多余的实例化及修改。在仅有一个对象存在时,操作很有效。1、构造函数私有化,其它类不能实例化对象2、引用私有化,没有其它的修改3、公有的静态方法唯一获取对象第一种实现:class AmericanPresident{ private static final AmericanPresident theP原创 2014-12-14 21:55:21 · 640 阅读 · 0 评论 -
结构型模式之Bridge模式
1、意图将抽象部分与实现部分分离,使它们都可以独立地变化2、适用性以下一些情况使用Bridge模式(1)你不希望在抽象和它的实现部分之间有一个固定的绑定关系。例如这种情况可能是因为在程序运行时刻实现部分应可以被选择或者切换。(2)类的抽象以及它的实现部分都应该可以通过生成子类的方法加以扩充。这时Bridge模式使你可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充。原创 2014-12-21 15:47:24 · 720 阅读 · 0 评论 -
结构型模式之Composite模式
1、意图将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。2、适用性以下情况使用Composite模式(1)你想表示对象的部分-整体层次结构(2)你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象3、参与者(1)Component:为组合中的对象声明接口;在适当的情况下,实现所有原创 2014-12-21 16:20:21 · 614 阅读 · 0 评论 -
设计模式之AbstractFactory
1、意图提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的实例2、适用性在以下情况下可以使用Abstract Factory模式(1)一个系统要独立于它的产品的创建、组合和表示时(2)一个系统要由多个产品系列中的一个来配置时(3)当你要强调一系列相关的产品对象的设计以便进行联合使用时(4)当你提供一个产品类库,而只想显示它们的接口而不是实现时3、参与者原创 2014-12-14 14:57:11 · 556 阅读 · 0 评论 -
创建型模式之FactoryMethod
1、意图定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到子类。2、适用性(1)当一个类不知道它所必须创建的对象的类的时候(2)当一个类希望由它的子类来指定它所创建的对象的时候。(3)当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。3、结构UML类图表示为原创 2015-02-11 21:03:37 · 646 阅读 · 0 评论 -
创建型模式之Builder模式
1、意图将一个复杂对象的创建与它的表示分享,使得同样的构建过程可以创建不同的表示。2、适用性(1)当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时(2)当构造过程必须允许被构造对象有不同的表示时3、参与者Builder:为创建一个Product对象的各个部件指定抽象接口ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件原创 2015-02-10 22:40:19 · 728 阅读 · 0 评论 -
创建型模式之Prototype
1、意图用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建对象。2、适用性当一个系统应用独立于它的产品创建、构成和表示时,要使用Prototype模式(1)当要实例化的类是在运行时刻指定时(2)为了避免创建一个与产品类层次平行的工厂类层次时(3)当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。原创 2015-02-12 20:16:31 · 561 阅读 · 0 评论 -
结构型模式之Adapter模式
1、意图将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。2、适用性以下情况使用Adapter模式(1)你想使用一个已经存在的类,而它的接口不符合你的需求(2)你想创建一个可以复用的类,该类可以与其它不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作(3)你想使用一些已经存在 的子类,但是不原创 2014-12-21 15:19:45 · 795 阅读 · 0 评论 -
设计模式资料
Java源码中有哪些设计模式http://www.iteye.com/news/18725常见的设计模式类图http://blog.sina.com.cn/s/blog_8cc6ff5c0101d4cp.html常见的设计模式的示例http://www.jb51.net/article/27973.htm原创 2015-07-05 15:07:47 · 656 阅读 · 0 评论 -
行为模式之Observer模式
1、意图定义对象间的一种一对鑫的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新2、适用性(1)当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。(2)当对一个对象的改变需要同时改变其它对象时,而不知道具体有多少对象有待改变。(3)当一个对象必须通知其它对象,而它又不能假定其它对象是原创 2014-12-23 19:14:02 · 613 阅读 · 0 评论 -
行为模式之Visitor模式
1、意图表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作2、适用性(1)一个对象结构包含很多类对象,它们有不同的接口,而你想对这些实施一些依赖于其具体类的操作(2)需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而你想避免让这些操作“污染”这些对象的类。Visitor使得你可以将相关的操作集中起来定义在一个类中。当该原创 2014-12-23 20:13:17 · 594 阅读 · 0 评论 -
结构型模式之Proxy模式
1、意图为其他对象提供一种代理以控制对这个访问2、适用性在以下情况下使用Proxy模式(1)远程代理为一个对象在不同的地址空间提供局部代表。(2)虚代理根据需要创建开销很大的对象。(3)保护代理控制对原始对象的访问。(4)智能指引取代了简单的指针,它在访问对象时执行一些附加操作。3、参与者(1)Proxy:保存一个引用使得代理可以访问实体;提供一个与 Subje原创 2014-12-21 17:56:46 · 723 阅读 · 0 评论 -
结构型模式之Decorator模式
1、意图动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活2、适用性以下情况使用Decorator模式(1)在不影响期货对象的情况下,以动态、透明的方式给单个对象添加职责(2)处理那些可以撤消的职责(3)当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长原创 2014-12-21 16:50:04 · 679 阅读 · 0 评论 -
结构型模式之Facade模式
1、意图为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这个子系统更加容易使用。2、适用性以下情况使用Facade模式(1)当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用笥,也更容易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上原创 2014-12-21 17:17:21 · 650 阅读 · 0 评论 -
结构型模式之Flyweight模式
1、意图运用共享技术有效的支持大量细粒度的对象。2、适用性以下情况使用Flyweight模式(1)一个应用程序使用了大量的对象(2)完全由于使用大量的对象,造成很大的存储开销(3)对象的大多数状态可变化外部状态(4)如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象(5)应用程序不依赖于对象标识。3、参与者(1)Flyweight:描述一个接原创 2014-12-21 17:39:49 · 648 阅读 · 0 评论 -
行为模式之Chain of Responsibility模式
1、意图使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。2、适用性在以下条件下使用Responsibility链(1)有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。(2)你想在不确定接收者的情况下,向多个对象中的一个提交一个请求。(3)可处理一个请求的集合被动原创 2014-12-22 19:34:43 · 513 阅读 · 0 评论 -
行为模式之Command模式
1、意图将一个请求封装为一个对象,从而你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤消的操作。2、适用性在以下情况下使用(1)抽象出待执行的动作以参数化某对象。你可用过程语言中的回调函数表达这种参数化机制。(2)在不同的时刻指定、排列和执行请求。一个Command对象可以有一个与初始请求无关的生存期。如果一个请求的接收者可用一种与地址空间无关的方式表达原创 2014-12-22 20:23:56 · 607 阅读 · 0 评论 -
行为模式之Intepreter模式
1、意图给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。2、适用性(1)该文法简单对于复杂的文法,文法的类层次变得庞大而无法管理。(2)效率不是一个关键问题最高效的解释器通常不是通过直接解释语法分析树实现的,而是首先将它们转换成另一种形式。3、参与者(1)AbstractExpression:声明一个抽象的解释操作,这个接口为原创 2014-12-22 20:42:38 · 674 阅读 · 0 评论 -
行为模式之Mediator模式
1、意图用一个中介对象来封装一系列的交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互2、适用性(1)一组对象以定义良好但是复杂的方式进行通信。产生的相互依赖关系结构混乱且难以理解。(2)一个对象引用其他很多对象并且直接与这些对象通信,导致难以利用该对象(3)想定制一个分布在多个类中的行为,而又不想生成太多的子类。3、参与者(1原创 2014-12-22 21:10:19 · 651 阅读 · 0 评论 -
行为模式之Memento模式
1、意图在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。2、适用性(1)必须保存一个对象在某一个时刻的状态,这样以后需要时它才能恢复到先前的状态。(2)如果一个用接口来让其它对象直接得到这些状态,将会暴露对象的实现细节并破坏对象的封装性。3、参与者(1)Memento:备忘录存储原发器对象的内部状态。原发原创 2014-12-22 21:27:55 · 622 阅读 · 0 评论 -
设计模式:行为模式
1、概述行为模式涉及到算法和对象间职责的分配。行为模式不仅描述对象或类的模式,还描述它们之间的通信模式。这些模式刻划了在运行时难以跟踪的复杂的控制流。它们将你的注意力从控制流转移到对象间的联系方式上为。行为类模式使用类继承机制在类间分派行为。行为对象模式使得对象复合而不是继承。一些行为对象模式描述了一组对等的对象怎样相互协作以完成其中任一个对象都无法单独完成的任务。2、种类有1原创 2014-12-22 19:14:15 · 667 阅读 · 0 评论 -
行为模式之Iterator模式
1、意图提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示2、适用性(1)访问一个聚合对象的内容而无需暴露它的内部表示(2)支持对聚合对象的多种遍历(3)为遍历不同的聚合结构提供一个统一的接口3、参与者(1)Iterator:迭代器定义访问和遍历元素的接口(2)ConcreteIterator:具体迭代器实现迭代器接口;对该聚合遍历时跟踪当前原创 2014-12-22 20:59:10 · 550 阅读 · 0 评论 -
行为模式之State模式
1、意图允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。2、适用性(1)一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为(2)一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。这个状态通常用一个或多个枚举常量表示。3、参与者(1)Context:定义客户感兴趣的接口;维护一个ConcreteState子类的实例原创 2014-12-23 19:25:48 · 573 阅读 · 0 评论 -
行为模式之Strategy模式
1、意图定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化2、适用性(1)许多相关的类仅仅是行为有异。策略提供了一种用多个行为中的一个行为来配置一个类的方法(2)需要使用一个算法的不同变体(3)一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式出现。将相关的条件分支移入它们各自的 Strategy类中以代替原创 2014-12-23 19:36:40 · 581 阅读 · 0 评论 -
行为模式之Template Method模式
1、意图定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。2、适用性(1)一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现(2)各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。(3)控制子类扩展3、参与者(1)AbstractClass:定义抽原创 2014-12-23 19:43:42 · 540 阅读 · 0 评论 -
设计模式:结构型模式
1、概述结构型模式涉及到如何组合类和对象以获得更大的结构。结构型模式采用继承机制来组合接口或实现。一个简单的例子是采用多重继承方法将两个以上的类组合成一个类,结果这个类包含了所有父类的性质。这个模式尤其有助于多个独立开发的类库协同工作。另外一个例子是类形式的Adapter模式。一般来说,适配器使得一个接口(adaptee的接口)与其他接口兼容,从而给出了多个不同接口的统一抽象。为此,类适配器对原创 2014-12-21 14:39:56 · 553 阅读 · 0 评论