編輯:關於android開發
單件/例模式是所有設計模式中可以說是最簡單最易懂的一種編程方式 ,想保證某個特定類的對象實例絕對只有一個時,想在程序上表達出對象實例只會有一個時,這種做法就被稱為單件/例模式。
Singleton 是指只有1個元素的集合。就是因為它只會有1 個對象實例,因而得名。
由於其簡單性,在此就不把UML圖畫出來了。本篇共涉及兩個類,一個為測試單件/例模式的類,一個為普通類,用來區分單例模式與普通對象的區別。
單件/例 類 Singleton
public class Singleton {
private static Singleton singleton=new Singleton();
private Singleton(){
System.out.println("對象己產生");
}
public static Singleton getInstance(){
return singleton;
}
}
該類把singleton 定義為靜態字段,再以Singleton 類的對象實例進行初始化,這個初始化的操作僅在加載Singleton 類時進行一次。
類的構造函數為私有的,主要是為了禁止從非Singleton 類調用構造函數。所以直接使用new Singleton() 會發生編譯的錯誤 。
單件/例 模式存在的必要只是為了確保對象只產生一個實例,如果編碼小心該模式一般沒什麼存在的必要,但誰能保證呢?存在即合理。
normal 類是一個空類
public class normal {
}
android 界面入口測試該 單件/例模式 SingletonPatternActivity 類
public class SingletonPatternActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((Button) findViewById(R.id.Button01))
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Singleton obj1=Singleton.getInstance();
Singleton obj2=Singleton.getInstance();
normal obj3=new normal();
normal obj4 =new normal();
if(obj1==obj2){
((EditText) findViewById(R.id.EditText01)).setText("obj1和obj2是同一對象實例");
}
else {
((EditText) findViewById(R.id.EditText01)).setText("obj1和obj2不是同一對象實例");
}
if(obj3==obj4){
((EditText) findViewById(R.id.EditText02)).setText("obj3和obj4是同一對象實例");
}else {
((EditText) findViewById(R.id.EditText02)).setText("obj3和obj4不是同一對象實例");
}
}
});
}
}
該模式經常在編寫 android 應用時,如果應用有使用Application用得比較多,詳細的代碼可以參考jamendo 開源播放器,裡面就有在Application裡面使用單件/例 模式。
Apache的詳細安裝教程和遇到的問題解決方案,apache解決方案有時需要自己去搭建一個Web服務器,有很多服務器可供選擇,這裡我自己搭建了一個Apache服務器,Ap
總結一下Android中主題(Theme)的正確玩法,androidtheme在AndroidManifest.xml文件中有<application androi
Android反編譯和二次打包實戰 作為Android開發者,工作中少不了要反編譯別人的apk,當然主要目的還是為了學習到更多,取彼之長,補己之短。今天就來總結一下A
Android開發學習——應用安裝過程,android開發 首先一個android項目,然後編譯和打包,將.java文件編譯為.class,.class編譯為.dex,將