zoukankan      html  css  js  c++  java
  • 设计模式第一弹—适配器模式

    1、场景

    2、类别

    2.1类代理

     

    // 已存在的、具有特殊功能、但不符合我们既有的标准接口的类
    class Adaptee {
    	public void specificRequest() {
    		System.out.println("被适配类具有 特殊功能...");
    	}
    }
     
     
    // 目标接口,或称为标准接口
    interface Target {
    	public void request();
    }
     
    // 具体目标类,只提供普通功能
    class ConcreteTarget implements Target {
    	public void request() {
    		System.out.println("普通类 具有 普通功能...");
    	}
    } 
     
     
    // 适配器类,继承了被适配类,同时实现标准接口
    class Adapter extends Adaptee implements Target{
    	public void request() {
    		super.specificRequest();
    	}
    } 
     
     
    // 测试类
    public class Client {
    	public static void main(String[] args) {
    		// 使用普通功能类
    		Target concreteTarget = new ConcreteTarget();
    		concreteTarget.request();
    		
    		// 使用特殊功能类,即适配类
    		Target adapter = new Adapter();
    		adapter.request();
    	}
    }
    

      

    2.2对象代理

    // 适配器类,直接关联被适配类,同时实现标准接口
    class Adapter implements Target{
        // 直接关联被适配类
        private Adaptee adaptee;
        
        // 可以通过构造函数传入具体需要适配的被适配类对象
        public Adapter (Adaptee adaptee) {
            this.adaptee = adaptee;
        }
        
        public void request() {
            // 这里是使用委托的方式完成特殊功能
            this.adaptee.specificRequest();
        }
    }
     
     
    // 测试类
    public class Client {
        public static void main(String[] args) {
            // 使用普通功能类
            Target concreteTarget = new ConcreteTarget();
            concreteTarget.request();
            
            // 使用特殊功能类,即适配类,
            // 需要先创建一个被适配类的对象作为参数
            Target adapter = new Adapter(new Adaptee());
            adapter.request();
        }
    }
  • 相关阅读:
    WPF之感触
    C# WinForm 给DataTable中指定位置添加列
    MyEclipse 8.6 download 官方下载地址
    将博客搬至CSDN
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
  • 原文地址:https://www.cnblogs.com/yuhuameng/p/9727258.html
Copyright © 2011-2022 走看看