Android設計模式——單例模式(Singleton)

來源:互聯網
上載者:User

標籤:

二十三種設計模式分為三大類:

建立型模式,共五種:Factory 方法模式、抽象原廠模式、單例模式、建造者模式、原型模式。

結構型模式,共七種:適配器模式、裝飾器模式、代理模式、面板模式、橋接模式、組合模式、享元模式。

行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解譯器模式。 

  1 package com.example.main;  2   3 import android.app.Activity;  4 import android.content.Context;  5 import android.os.Bundle;  6 import android.widget.LinearLayout;  7 import android.widget.TextView;  8   9 /* 10  * Android設計模式——單例模式(Singleton) 11  */ 12  13 public class Singleton extends Activity { 14  15     private LinearLayout ly; 16     private LinearLayout sly; 17      18     @Override 19     protected void onCreate(Bundle savedInstanceState) { 20         super.onCreate(savedInstanceState); 21         setContentView(R.layout.create); 22          23         ly = (LinearLayout) findViewById(R.id.creately); 24         sly = (LinearLayout) findViewById(R.id.singly); 25          26         Android google = new Android("Google",ly,this); 27         google.setName(); 28          29         Android huawei = new Android("華為",ly,this); 30         huawei.setName(); 31          32         //第一次執行個體化 33         IOS ios = IOS.getInstance("蘋果", sly, this); 34         ios.setName(); 35          36         //第二次調用 37         IOS samsung = IOS.getInstance("三星", ly, this); 38         samsung.setName(); 39     } 40      41     /* 42      * Android廠商 43      */ 44      45     class Android{ 46          47         private String name; 48         private LinearLayout ly; 49         private TextView tv; 50         private Context context; 51          52         public Android(String name,LinearLayout ly,Context context){ 53             this.name = name; 54             this.ly = ly; 55             this.context = context; 56         } 57          58         public void setName() { 59             tv = new TextView(context); 60             this.tv.setText(name + "的Android裝置"); 61             this.ly.addView(this.tv); 62         } 63     } 64      65     /* 66      * 蘋果廠商 67      */ 68      69     static class IOS{ 70          71         private String name; 72         private LinearLayout ly; 73         private TextView tv; 74         private Context context; 75          76         //禁止引用 77          78         private static IOS instance = null; 79          80         //私人建構函式,防止被執行個體化。 81          82         private IOS(){} 83          84         private IOS(String name,LinearLayout ly,Context context){ 85             this.name = name; 86             this.ly = ly; 87             this.context = context; 88         } 89          90         //建立執行個體 91          92         public static IOS getInstance(String name,LinearLayout ly,Context context){ 93              94             if (instance == null) { 95                 instance = new IOS(name,ly, context); 96             } 97             return instance; 98         } 99         100         public void setName() {101             tv = new TextView(context);102             tv.setText("IOS只屬於"+name+"公司");103             ly.addView(tv);104         }105     }106 }
View Code

 

Android設計模式——單例模式(Singleton)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.