Adapter Pattern 適配器模式
瞭解現有內容,以及對外的需求。中間使用Adapter連接。
1.Class Adapter
使用電源適配器做例子。Source是原來有的220V電源
- package org.yucc.classs;
- public class Source {
- private int level;
- public Source(int level)
- {
- this.level = level;
- }
- public int getLevel(){
- return level ;
- }
- }
SOAdapter是電源適配器,負責電壓轉換。
- package org.yucc.classs;
- public class SOAdapter extends Source {
- public SOAdapter(int level) {
- super(level);
- // TODO Auto-generated constructor stub
- }
- public String convertLevel(int level) {
- // TODO Auto-generated method stub
- return this.getLevel() + " convert TO " + level +"\n";
- }
- }
Output 提供所需要電壓
- package org.yucc.classs;
- interface OutputInterface {
- public String service(int level) ;
- }
- public class Output implements OutputInterface{
- private SOAdapter adapter ;
- public void setAdapter(SOAdapter adapter){
- this.adapter = adapter ;
- }
- @Override
- public String service(int level) {
- // TODO Auto-generated method stub
- return this.adapter.convertLevel(level) +"目前的level是 " + level ;
- }
- }
2.Object Adapter
下面是的對象持有中的適配器類。實際操作以持有的對象進行。
- package org.yucc.object;
- import org.yucc.classs.Source;
- public class SOAdapter {
- private Source src = null ;
- public SOAdapter(Source src) {
- // TODO Auto-generated constructor stub
- this.src = src ;
- }
- public String convertLevel(int level) {
- // TODO Auto-generated method stub
- return this.src.getLevel() + " convert TO " + level +"\n";
- }
- }
適配器模式使得我們可以使用已有的類來實現一些特定的需求。