Android学习之设计模式之单例模式

Java据说有23种设计模式,Android的设计模式肯定是由Java来引申出来的。这里不讨论有多少人全会,有多少种设计模式会使用到,我们来讲下其中用得最多的也就是人人都知道的单例模式。

单例模式的实现也有很多种,最普通的(线程不安全),带上同步锁(效率有点低)等等。

今天来讲下一种比较奇特的据说是比较完美的实现方式,当然它也是能满足多线程并发的。

就是使用匿名内部类的方式来实现,代码如下:

/**  * Person  *  * @author yuzhentao  */ public class Person {

    private Context context;   private static class PersonHolder {
        private static Person person = new Person();  }

    private Person() {

    }

    public static Person getInstance() {
        return PersonHolder.person;  }

    protected void test() {
        Toast.makeText(context, "测试", Toast.LENGTH_SHORT).show();  }

    protected void init(Context context) {
        this.context = context;  }

}
这里因为要使用到Context,所以要传入Context,关于Context的传入比较麻烦了点,需要外部先调用一下init()方法来传入,当然主要是我没想到比较好的方式,这还是借鉴了大神的想法。- -...

看看怎么使用的:

/**  * 主界面  *  * @author yuzhentao  */ public class MainActivity extends Activity {

    @Override  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  Person.getInstance().init(this);  Person.getInstance().test();  }

}
这就是我觉得比较好的单例模式的实现。

希望对大家有所帮助。

这里感谢:http://blog.csdn.net/beyond0525/article/details/22794221

Demo地址:http://download.csdn.net/detail/qq_23940659/9478450

你可能感兴趣的:(设计模式,android,单例模式)