Next, let's learn the appearance mode.
Appearance mode: provides a unified interface to access a group of interfaces in the subsystem.
Create a car class
Package COM. jindegege. car; public class car {Public String start () {return "";} Public String check_stop () {return "";} Public String check_box () {return "Check tank";} Public String check_console () {return "Check dashboard ";}}
2. Create a new appearance class (this class provides a unified interface for accessing the car class interface method)
Package COM. jindegege. car. facade; import Java. util. arraylist; import Java. util. hashmap; import Java. util. list; import Java. util. map; import COM. jindegege. car. car; public class facade {public Map <string, string> car_do (car) {// unified interface method Map <string, string> DATA = new hashmap <string, string> ();/*** is used to access a group of interface methods in the subsystem **/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. Create an android client and provide XML and activity:
<?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>
Main activity class:
package com.jindegege.facade;import java.util.Map;import com.jindegege.car.Car;import com.jindegege.car.facade.Facade;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class FacadeActivity extends 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()); } }}
Let's take a look at the simple implementation effect:
Isn't it easy? encapsulate the sub-operation with a appearance interface, and then call this interface to call those very complex micro-operations.
Source code: http://download.csdn.net/detail/jindegegesun/4093597