码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式(2)-- 适配器模式(Adapter)

时间:2018-01-02 11:30:30      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:ada   方法   extends   ons   也会   pac   pack   targe   类适配器   

    适配器模式也被称为Wrapper模式,Wrapper有包装的意思,将某样东西包装起来,使其能够用于其他用途。

    Adapter模式有两种:

       类适配器模式(继承)

       对象适配器模式(委托)

    示例:

   程序员类(Adaptee被适配):

package com.adapter.demo;
//程序员类
public class Programmers {
                //  Programmers have no girlfriends
                //has GirlFriend? return true && false
                private    boolean girlFriend;

                public Programmers(boolean flag) {
                    this.girlFriend = flag;
                }
                
                public void coding() {    
                    if(!girlFriend) {
                        System.out.println("伤心的写代码");
                    }else {
                        System.out.println("愉快的写代码");
                    }
                }

    

}

 

  适配一个女朋友(Adapter):

package com.adapter.demo;

public class Girl extends Programmers implements PrintState{

    

    public Girl(boolean flag) {
        super(flag);
        // TODO Auto-generated constructor stub
    }
    
    

    @Override
    public void printState() {
        // TODO Auto-generated method stub
        coding();
    }

    
    
        
    
}

 

 需要的结果(target):

 

package com.adapter.demo;

public interface PrintState {
                
    public abstract void printState();
                
}

 

 测试:

package com.adapter.demo;

public class TestMain {
        public static void main(String[] args) {
            PrintState printState = new Girl(true);
            printState.printState();
        }
}

 

结果:

  愉快的写代码

  适配器模式可以将已测试好的类通过一个适配器类(Adapter)来生成新的方法,可以对需呀复用的方法进行复用,创建自己的方法群,同时DeBug也会变得简单,只需要根据适配器寻找相应的方法即可。  

设计模式(2)-- 适配器模式(Adapter)

标签:ada   方法   extends   ons   也会   pac   pack   targe   类适配器   

原文地址:https://www.cnblogs.com/yangchaojie/p/8162345.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!