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