大家都见过电源适配器吧,电源适配器就是最典型的适配器模式的实现
假设A公司对竞争对手B公司进行了收购重组
A公司希望重组后和B公司的采购程序用同一套程序
假设A公司的采购程序如下
class CollectA
{
void collect()
{
...//具体采购过程
}
}
B公司采购程序·如下
class CollecB
{
void planCollect()
{
...//具体采购过程
}
}
这时候出现一个问题,A公司和B公司的采购过程都一样,但是想将B公司的采购程序接入时发现两个接口不一样,A公司想用自己的接口去实现调用,改造B公司接口又要花费大量的精力
这时候适配器模式就大显身手了
class BCompanyAdapert
{
CollectB collectB;
//构造函数,传入CollectB实例
void collect()
{
this.collecB.planCollect();
}
}
这样A公司就可以用BCompanyAdapert去调用collect()接口,底层实际上是调用B公司的接口,这样就无需调用方和被调用方做出底层代码的改变
这就是适配器模式的强大威力