版权声明:本文为博主原创文章,未经博主允许不得转载。 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中还有专门的适配器,就是为了将不一样的数据显示在界面上。
欢迎指点指正。