Android中常见的设计模式
16lz
2021-01-26
单例模式:(静态内部类)
private ProgressDialogUtil() {}private static class ProgressDialogUtilHolder { private static ProgressDialogUtil mProgressDialogUtil = new ProgressDialogUtil();}public static ProgressDialogUtil getInstance() { return ProgressDialogUtilHolder.mProgressDialogUtil;}
使用静态内部类的好处:当progressdialogutil类被加载时,其内部类并不会被初始化,故可以确保当progressdialogutil类被载入JVM时,不会初始化单例类,当getinstance()方法被调用时,才会加载progressdialogutilholder,从而初始化progressdialogutil类.
同时,由于实例的建立是在类加载时完成,故天生对多线程友好,getinstance()方法也不需要使用同步关键字
类的静态属性只会在第一次加载类的时候初始化,所以在这里,JVM帮助我们保证了线程的安全性,在类进行初始化时,别的线程是无法进入的。
优点:避免了线程不安全,延迟加载,效率高。
代理模式:
例子:电脑桌面的快捷方式。电脑对某个程序提供一个快捷方式(代理对象),快捷方式连接客户端和程序,客户端通过操作快捷方式就可以操作那个程序
参考:https://blog.csdn.net/column/details/14783.html
https://blog.csdn.net/carson_ho/article/details/54910472
刘望舒写的设计模式系列 http://liuwangshu.cn/categories/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/
更多相关文章
- Lottie for Android(安卓)开源动画
- 一个android 异步多线程类介绍
- Android实现异步加载
- 运用BitmapFactory.Options来改善程序加载图片效率和避免内存溢
- 网络请求工具类HttpUtils
- 漂亮的Android加载动画
- Fragment中添加tabs
- Android(安卓)listview使用
- Android(安卓)WebView基本用法及常见问题