设计模式
文章平均质量分 76
haha9737
这个作者很懒,什么都没留下…
展开
-
设计模式之Proxy–静态代理(代理模式)
代理模式一遍涉及的角色有1.抽象角色:声明真实对象和代理对象的共同接口2.代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时候都能够代替真实对象。同时代理对象可以在执行真实对象操作时,附加其他操作,想当于对真实对象进行封装。3.真实角色:代理角色所代表的真实对象,是我们最终要引用的对象。4.客户需要调用的是Re转载 2011-11-25 06:38:55 · 617 阅读 · 0 评论 -
Mediator模式(中介者)
Java深入到一定程度,就不可避免的碰到设计模式这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Mediator(中介者模式)模式是比较常用的一个模式. Mediator中介者模式,当多个对象彼此间都有联系的时候,我们就可以应用Mediator将对象间的多对多关系转换为转载 2011-11-29 10:14:53 · 485 阅读 · 0 评论 -
Iterator 迭代器模式 java实现
package Iterator.MyTest;public interface Iterator { public abstract boolean hasNext(); public abstract E next(); public void remove();}package Iterator.MyTest;public interface Iterab原创 2011-11-29 16:47:37 · 483 阅读 · 0 评论 -
Chain of Responsibility(责任链)java实现
package ChainofResponsibility.MyTest;public class MyTest { /**Chain of Responsibility(责任链) * @param args */ public static void main(String[] args) { AbstractRequest ar1=new CookRequest("发出做原创 2011-12-01 17:09:15 · 844 阅读 · 0 评论 -
Visitor(访问者) java实现
package Visitor.MyTest;import java.util.Collection;import java.util.Iterator;/** * 采访者 * @author Administrator */public abstract class Visitor { public void visit(Visitable visitable) { /原创 2011-12-05 16:01:06 · 421 阅读 · 0 评论 -
Adapter 适配器模式笔记--java实现(电源适配器示例)
适配器模式有两种:1.第一种适配后的程序调用 的接口package AdapterDesign1;public interface Target { void get18V(); void get33V(); void get0V();}被适配的对象package AdapterDesign1;public class Adaptee { prot原创 2011-12-19 16:12:39 · 599 阅读 · 0 评论 -
Command模式--学习笔记
Command模式--学习笔记原创 2011-12-19 14:28:52 · 129 阅读 · 0 评论 -
23种设计模式的形象比喻
1、ABSTRACT FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如转载 2011-12-15 16:03:28 · 563 阅读 · 0 评论 -
设计模式之单例模式(懒汉式、饿汉式、双重检查)
package Singleton;public class Persion1 { public static Persion1 persion=new Persion1(); /** * 饿汉式单例 */ public static Persion1 getInstance() { return persion; } private int age; publi原创 2012-05-30 14:25:57 · 2408 阅读 · 3 评论 -
Command模式
package Command.MyTest;public interface Animal {public void walk();public void jump();}package Command.MyTest;public class Dog implements Animal { @Override public void jump() { System.原创 2011-11-29 10:12:42 · 405 阅读 · 0 评论 -
java适配器模式(adapter模式)
目的:将一个类的接口转换成客户希望的另外一个接口。A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 意图:你想使用一个已经存在的类,而它的接口不符合你的需求。 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。 (仅适用于对象A d a p t e r )你想使用一些已经存在的子类转载 2011-11-28 10:07:36 · 419 阅读 · 0 评论 -
设计模式之Strategy(策略模式系列1)
看了Jdon上写的的策略模式,例子很简单,代码有些错误。http://www.jdon.com/designpatterns/ 文章写的比较早,其实现在的策略模式大多是用Enum来实现,会简单的多,但是思想不变:不同的算法或者行为各自封装,用户自行挑选。 先摘抄他上面的代码,错误已经改正:Strategy策略模式是属于设计模式中 对象行为型模式,主要是定义一系列的算法,把这些算法一个个转载 2011-11-25 06:43:11 · 422 阅读 · 0 评论 -
设计模式之Factory Method(工场方法)
1. 本类图是针对,不同日志需求来导出不同的数据格式类型而使用的一种设计模式。2. Factory Method的本质:使一个类的实例化延迟到其子类3. Factory Method是DI(Dependency Injection)的一种最好的实现方式,从而实现了框架来控制应用程序的目的,很好的体现了“依赖倒置原则,依赖抽象,而不依赖具体类”,ExportFileApi是抽象,而Expor转载 2011-11-25 06:36:20 · 452 阅读 · 0 评论 -
设计模式之使用Enum来实现strategy(策略模式系列2)
使用Enum实现枚举代码更为清晰和简单,适合于处理一些比较简单的业务流程。如果算法或者业务流程比较复杂,还是使用以前的吧。直接贴代码吧,同样是上篇文章中的例子。 public enum TestStrategy { RepTempRuleOne{ @Override public String replace(String oldString) { // TO转载 2011-11-25 06:40:58 · 557 阅读 · 0 评论 -
设计模式索引
1.Simple Factory(简单工厂)::提供一个创建对象实例的集合,而无须关心其具体实现。被创建的类型可以是接口、抽象类也可以是具体类。 简单工厂的本质:选择实现。 2.Facade(外观):为子系统中的一组接口提供了一个统一一致的界面,该模式定了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式的本质:封装交互,简化应用。 3.Adapter(适转载 2011-11-25 06:30:10 · 576 阅读 · 0 评论 -
设计模式之Dynamic Proxy-动态代理
动态代理(Dynamic Proxy)是JDK5 提供的一种新特性。其特点在于在程序的运行时刻动态的创建出代理类及其对象,而不像我们使用静态代理时必须在编译之前定义好代理类。在运行时刻,框架帮我们动态的创建出一个实现了多个接口的代理类,每个代理类的对象都会和一个InvocationHandler接口的实现类相关联。当我们调用了代理对象所代理的接口中的方法的时候,这个调用的信息会被传递给Invoca转载 2011-11-25 06:34:28 · 467 阅读 · 0 评论 -
适配器Adapter 设计模式
欢迎转载,请注明出处。1、核心意图: 将一个类的接口转换成客户希望的另外一个接口,从而使得原本由于接口不兼容而不能一起工作的类可以一起工作。该模式的目标是通过一个代理(这里是Adapter),在原来的类(Adaptee)和客户(Client)之间进行协调,从而达到兼容的目的。其核心是解决一致性的问题。 2、身边实例:在我们实际生活中也很容易看到这方面的例子,比如我们要转载 2011-11-25 14:46:20 · 459 阅读 · 0 评论 -
中介模式(Mediator) 中介示例 java实现
package Mediator.MyTest;// 租房者 abstract class lodger { int maxmoney; int minmoney; String name; public abstract void rented(); public abstract void statisticsHouse(); }package Media原创 2011-11-28 14:59:52 · 681 阅读 · 0 评论 -
观察者设计模式 (observer模式) java实现
package Observer.MyTest;import java.util.Observable;import java.util.Observer; public class ObserverTest { /** * @param args */ public static void main(String[] args) { observered oe=原创 2011-11-28 17:47:40 · 393 阅读 · 0 评论 -
command模式--java实现 (将军发出指令示例)
package ParttenDesign;//将军的命令接口public interface Command { void defend(); void attack();}将军想士兵发出的指令动作package ParttenDesign;public class Commander implements Command { Command command;原创 2011-12-19 15:01:49 · 841 阅读 · 0 评论