明修栈道,暗度陈仓

适配器模式(Adapter Pattern)



  适配器模式,这是个很有意思的模式。我一见这个模式,就联想起了三十六计中的一计——明修栈道,暗度陈仓。hoho!

  适配器,这个名字起的真不错。

  一个正直的人,具有适配器的特征,那么我们就说这个人,“大丈夫,能屈能伸”,“适应能力强,无论在任何环境中,都能找到自己合适的位置”,“遇到问题,总能能转换角度,找到合适的方法”,等等……

  唉,形容一个不那么正直的人,这个人“老油条”,“见什么人说什么话,八面玲珑”,“道貌岸然,满口的仁义道德,一肚子的男盗女娼”,如此尔尔……所谓“挂着羊头卖狗肉”,“披着羊皮的狼”等等,估计也是都是这一模式的具体应用吧。

  又想起了前段时间的艳照门中的某位明星,呵呵,良好的运用了适配器模式,当代码正常运行的时候,我们根本就没有发觉适配器的存在,hoho,突然程序出现bug了,我们才发觉,哦,原来系统中还存在着这么一个东东!

  target:CuteGirl
  adaptee:RealGril
  adapter:RealGrilAdapter

------------------------

#1(CuteGirl.java)

public interface CuteGirl {
  public void act();
}

#2(CuteGirlImpl .java)
public class CuteGirlImpl implements CuteGirl {
  public void act() {
    System.out.println("很傻很天真");
  }
}

----------------------

#3(RealGril.java)
public interface RealGril {
  public void act();
}

#4(RealGrilImpl.java)
public class RealGrilImpl implements RealGril {
  public void act() {
    System.out.println("很黄很暴力");
  }
}

-------------------

#5(RealGrilAdapter.java)
public class RealGrilAdapter implements CuteGirl {

  private RealGril rg;

  public RealGrilAdapter(RealGril aRg) {
    this.rg = aRg;
  }

  public void act() {
    rg.act();
  }
}

-------------------

#6(Test.java)
public class Test {
  public static void main(String args[]) {
    CuteGirl cg1 = new CuteGirlImpl();

    RealGril rg = new RealGrilImpl();
    CuteGirl cg2 = new RealGrilAdapter(rg);

    System.out.println("the first girl");
    testGril(cg1);

    System.out.println("\nthe second girl");
    testGril(cg2);
  }

  public testGril(CuteGirl cg) {
    System.out.print("包装效果:");
    System.out.println("很傻很天真");

    System.out.print("实际:");
    cg.act();
  }
}


输出结果:
--------------------------
包装效果:很傻很天真
实际:很傻很天真

包装效果:很傻很天真
实际:很黄很暴力


-----------------------
ps:纯属娱乐,不是故意诋毁某些人,唉,谁能保证100%真实,谁能保诚100%虚伪?事物是充满矛盾的!
标签: | edit post
1 Response
  1. Anonymous Says:

    写得不错。
    頑張ってください。