Android[進階教程] 設計模式之三 原型模式

來源:互聯網
上載者:User

上次說了兩種設計模式,這次我們說一下原型模式,原型模式其實理解也很簡單,就是一個原型,一個實現它自身的複製。《西遊記》裡經常會出現真假唐僧,真假孫悟空這種事件,這裡我們就根據這個事件來說一下原型模式,首先做假的話必須具備真身自有的特點,(例:外觀,口音)這些特點也必須跟原來的一樣,才能讓人真假難分。我們接著上一個策略模式來實現原型模式,首先我們先定義一下悟空類:

public class Wukong implements Person, Cloneable {@Overridepublic String save() {return "大徒弟孫悟空來救師傅";}@Overrideprotected Object clone() {try {return super.clone();} catch (CloneNotSupportedException e) {// TODO Auto-generated catch blocke.printStackTrace();return null;}}}

這裡悟空就實現了自身的複製,即是複製,對自身的類進行複製,這樣才能讓人真假難分啊,接下來就是調用了。

public class XiyoujiActivity extends Activity {private ListView listView;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);listView = (ListView) findViewById(R.id.listView1);Tangseng tangseng = new Tangseng();Wukong wukong = new Wukong();ArrayList<String> lists = new ArrayList<String>();lists.add(tangseng.help(wukong));lists.add(tangseng.help((Person)wukong.clone()));ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, lists);listView.setAdapter(adapter);}}

其他的類我們就借用了上一篇策略模式的類了,其他的沒有改變,這裡我們解釋一下,因為複製的話返回的是對象,我們進行了強制轉換,將他返回特定的類型,這樣唐僧在呼救的時候假孫悟空也可以去救。

最後,最後啟動並執行



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.