Android Ap开发设计模式第五篇:单件模式

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 18:18 点击:

Singleton Pattern
名称由来
java 是一门面向对象的语言,android 用的也是java 开发ap ,在java/C#  里面所有的物体(类)都可以看作是一个对象,而要使用这个对象无外乎为它在内存里面分配一个对象,一般情况下最直接的方法是new 一个对象,让它存在于内存中。

  单件/例模式是所有设计模式中可以说是最简单最易懂的一种编程方式 ,想保证某个特定类的对象实例绝对只有一个时,想在程序上表达出对象实例只会有一个时,这种做法就被称为单件/例模式。

  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){
       

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Android 完全退出程序
    • 原创:Android应用开发-Andorid歌词秀,含源码
    • android 屏幕保护
    • Android手机软件汉化教程---第四课 dex文件汉化
    • 众多Android 开源项目推荐,给力工作给力学习
    • Android Audio代码分析4
    • Android得到已安装的应用程序信息!
    • Android开发者指南(29) —— USB Host and Accessory
    • Android成长的幕后推手:工程师鲁宾
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1