java23中设计模式之适配器模式

package com.bjsxt.adapter;

/**
 * 被适配的类
 * (相当于例子中的,PS/2键盘)
 * @author Administrator
 *
 */
public class Adaptee {

    public void request(){
        System.out.println("可以完成客户请求的需要的功能!");
    }
}

Adaptee

package com.bjsxt.adapter;

/**
 * 客户端类
 * (相当于例子中的笔记本,只有USB接口)
 * @author Administrator
 *
 */
public class Client {

    public void test1(Target t){
        t.handleReq();
    }

    public static void main(String[] args) {
        Client  c = new Client();

        Adaptee a = new Adaptee();

//        Target t = new Adapter();

        Target t = new Adapter2(a);

        c.test1(t);

    }

}

Client

package com.bjsxt.adapter;

public interface Target {
    void handleReq();
}

Target

package com.bjsxt.adapter;

/**
 * 适配器 (类适配器方式)
 * (相当于usb和ps/2的转接器)
 * @author Administrator
 *
 */
public class Adapter extends Adaptee implements Target {

    @Override
    public void handleReq() {
        super.request();
    }

}

adapter 类适配器

package com.bjsxt.adapter;

/**
 * 适配器 (对象适配器方式,使用了组合的方式跟被适配对象整合)
 * (相当于usb和ps/2的转接器)
 * @author Administrator
 *
 */
public class Adapter2  implements Target {

    private Adaptee adaptee;

    @Override
    public void handleReq() {
        adaptee.request();
    }

    public Adapter2(Adaptee adaptee) {
        super();
        this.adaptee = adaptee;
    }

}

Adapter 对象适配器

时间: 2024-10-10 08:38:55

java23中设计模式之适配器模式的相关文章

java23中设计模式之迭代器模式

package com.bdqn.iterator; public interface MyIterator { //将游标指向第一个元素 void first(); //将游标指向下一个元素 void next(); //判断存在下一个元素 boolean hasNext(); boolean iSFirst(); boolean iSLast(); //获取当前游标指向的对象 Object getCurrentObj(); } MyIterator package com.bdqn.iter

java23中设计模式之中介者模式

package com.bdqn.mediator; /** * 部门接口 * @author OU * */ public interface Department { void selfAction();//做本部门的事情 void outAction();//向总经理发出申请 } department package com.bdqn.mediator; /** * 研发部门 * @author OU * */ public class Development implements Dep

java23中设计模式之命令模式

package com.bdqn.command; /** * * @author OU * */ public interface Command { //这个方法是一个返回结果为空的放大 实际项目中,可以根据需求设计多个不同的方法 void execute(); } class ConcreteCommand implements Command{ //命令的真正的执行者 private Receiver receiver; public ConcreteCommand(Receiver r

java23中设计模式之备忘录模式

package com.bdqn.memento; /** * 源发器类 * @author OU * */ public class Emp { private String ename; private int age; private double salary; //进行备忘操作,并返回备忘录对象 public EmpMemento memento(){ return new EmpMemento(this); } //进行数据恢复,恢复成制定备忘录对象的值 public void re

java23中设计模式之策略模式

package com.bjsxt.strategy; /** * 负责和具体的策略类交互 * 这样的话,具体的算法和直接的客户端调用分离了,使得算法可以独立于客户端独立的变化. * 如果使用spring的依赖注入功能,还可以通过配置文件,动态的注入不同策略对象,动态的切换不同的算法. * @author Administrator * */ public class Context { private Strategy strategy; //当前采用的算法对象 //可以通过构造器来注入 pu

java23中设计模式之组合模式

package com.bjsxt.composite; /** * 抽象组件 * @author Administrator * */ public interface Component { void operation(); } //叶子组件 interface Leaf extends Component { } //容器组件 interface Composite extends Component { void add(Component c); void remove(Compon

23中设计模式

http://zz563143188.iteye.com/blog/1847029 设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用设计模式可以完美的

23中设计模式(Design Patterns)转载

设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周

java开发中的23中设计模式详解--大话设计模式

设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周