您的位置:首页 > 移动开发 > Android开发

android设计模式--外观模式

2014-08-12 21:34 239 查看
外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。

[java] view
plaincopy

public class Car {

public String start() {

return "车子已启动";

}

public String check_stop() {

return "检查刹车";

}

public String check_box() {

return "检查油箱";

}

public String check_console() {

return "检查仪表盘";

}

}

2、新建一个外观类(该类提供了一个统一的接口用来访问Car类的接口方法)

[java] view
plaincopy

public class Facade {

public Map<String, String> car_do(Car car) {//统一的接口 方法

Map<String,String> data= new HashMap<String,String>();

/**

* 用来访问子系统中的一群接口方法

*/

String data1=car.check_box();

String data2=car.check_console();

String data3=car.check_stop();

String data4=car.start();

data.put("data1", data1);

data.put("data2", data2);

data.put("data3", data3);

data.put("data4", data4);

return data;

}

}

3、新建android客户端,给出xml以及activity:

[html] view
plaincopy

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<TextView

android:id="@+id/textview01"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello" />

<TextView

android:id="@+id/textview02"

android:layout_width="fill_parent"

android:layout_height="wrap_content" />

<TextView

android:id="@+id/textview03"

android:layout_width="fill_parent"

android:layout_height="wrap_content" />

<TextView

android:id="@+id/textview04"

android:layout_width="fill_parent"

android:layout_height="wrap_content" />

</LinearLayout>

主activity类:

[java] view
plaincopy

public class FacadeActivityextends Activity {

private TextView textview01;

private TextView textview02;

private TextView textview03;

private TextView textview04;

private Facade car_impl;

private Map<String, String> data;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

textview01=(TextView)findViewById(R.id.textview01);

textview02=(TextView)findViewById(R.id.textview02);

textview03=(TextView)findViewById(R.id.textview03);

textview04=(TextView)findViewById(R.id.textview04);

car_impl=new Facade();

data=car_impl.car_do(new Car());

if(textview01!=null&&data.get("data1")!=null){

textview01.setText(data.get("data1").toString());

}

if(textview02!=null&&data.get("data2")!=null){

textview02.setText(data.get("data2").toString());

}

if(textview03!=null&&data.get("data3")!=null){

textview03.setText(data.get("data3").toString());

}

if(textview04!=null&&data.get("data4")!=null){

textview04.setText(data.get("data4").toString());

}

}

}

下面看看实现的简单效果:



是不是感觉很简单啊,将子操作用一个外观接口封装起来,然后调用这个接口就可以调用那些非常复杂的微操作了。

源代码下载地址:http://download.csdn.net/detail/jindegegesun/4093597

source link:/article/8086003.html
http://blog.csdn.net/jackhenry/article/details/7344577
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: