23种设计模式-适配器模式《GB变压器》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39923324/article/details/82108241

对于许久不用的东西,容易忘记。百度许久,也未能找到自己所要。 从今日起,有些东西就记载下来,不仅方便自己,希望能帮到他人吧!

适配器模式:
对象适配器模式
-适配器容纳一个它包裹的类的实例。
类适配器模式
适配器继承自已实现的类(一般多重继承)。

GB是国家标准的意思,比如秦死皇的书同文,车同 ,统一度量衡。就像春秋战国时代一样,现代国家的书不同文,一个人要学习好多门语音,对于这个我是深痛恶觉,车也不同轨,中国行人靠右,方向盘在右边,其他国家,包裹中国香港,行人靠左,方向盘在左便。统一度量衡?钱币不同,价值亦不相同,度衡量怎么相同。
所以去国外,要不使用国外生产的东西,要不带国内的东西,不过需要适应适配器。

今天就说变压器,变压器本就是适配器,他把220V的电量装换5V,36V的电压输出,但是但怎么表示呢?

对象适配器模式

package com.example.yancy.model.AdapterPattern;

/**
 * 创建日期:2018/8/27 0027 on 9:57
 * 描述:输入200v电压
 * 作者: yancy
 */
public interface V220 {

    void v220();
}
package com.example.yancy.model.AdapterPattern;

/**
 * 创建日期:2018/8/27 0027 on 9:58
 * 描述:5v电压
 * 作者: yancy
 */
public interface V5 {
    void v5();
}
package com.example.yancy.model.AdapterPattern;

import android.util.Log;

/**
 * 创建日期:2018/8/27 0027 on 9:59
 * 描述:输出5v电压
 * 作者: yancy
 */
public class V5er implements V5 {

    private static final String TAG = "yancy";

    @Override
    public void v5() {
        Log.e(TAG, "这就是5v电压" );
    }
}
package com.example.yancy.model.AdapterPattern;

import android.util.Log;

/**
 * 创建日期:2018/8/27 0027 on 10:01
 * 描述:
 * 作者: yancy
 */
public class Adapter implements V220 {
    private static final String TAG = "yancy";

    V5er v5er;

    public Adapter(){
        v5er=new V5er();
    }

    @Override
    public void v220() {
        Log.e(TAG, "v220: 输入的电压为220v ");
        Log.e(TAG, "v220: 開始裝換...");
        v5er.v5();
        Log.e(TAG, "v220: 開始完成...");
    }
}
  @Test
    public void testAdapter(){
        Adapter adapter=new Adapter();
        adapter.v220();
    }

输出结果

    v220: 输入的电压为220v 
    v220: 開始裝換...
    这就是5v电压
    v220: 開始完成...

类适配器模式

修改Apdater,对象不作为属性,而改成继承。

package com.example.yancy.model.AdapterPattern;

import android.util.Log;

/**
 * 创建日期:2018/8/27 0027 on 10:01
 * 描述:
 * 作者: yancy
 */
public class Adapter2 extends V5er implements V220 {
    private static final String TAG = "yancy";

    public Adapter2(){
        super();
    }
    @Override
    public void v220() {
        Log.e(TAG, "v220: 输入的电压为220v ");
        Log.e(TAG, "v220: 開始裝換...");
        v5();
        Log.e(TAG, "v220: 開始完成...");
    }
}

这就是适配器了,Android中还有专门的适配器,就是为了将不一样的数据显示在界面上。

欢迎指点指正。

猜你喜欢

转载自blog.csdn.net/weixin_39923324/article/details/82108241