首页 > 作文

android设计模式有哪些(android界面设计实例)

更新时间:2023-04-05 05:18:46 阅读: 评论:0

1. 定义:

确保1个类只有1个实例化对象 ,提供一个全局访问点

2. 优缺点

优点:客户端使用单例模式的实例的时候,只需要调用一个单一的方法即可生成一个唯一的实例,有利于节约资源。
缺点:首先单例模式很难实现序列化,这就导致采用单例模式的类很难被持久化,当然也很难通过网络传输;其次由于单例采用静态方法,无法在继承结构中使用。

3. android源码中的体现:

例如,加载布局时经常要创建layoutinflater的实例,常见的有三种方法:

其实前两种最后都是调用的最后一种,是获取系统服务经常用到的方法,这只是一个典型的单例的使用场景,其实在android源码中用到单例的情况还有很多。

4. 几种实现方式

1.饿汉式:在声明变量时就创建该实例
优点:线程安全,多线程中使用不会出现创建多个实例的情况
缺点:比较消耗计算机资源

2.懒汉式:使用到时才创建实例
优点:节省计算机资源,在单线程下能够非常好的工作
缺点:在多线程下存在线程安全问题

懒汉式

3.懒汉式+双重校验锁:dcl ( double check lock)
优造诣的意思点:既解决了”懒汉式“的多线程问题,又解决了资源浪费的现象。
缺点:在某些情况dcl会出现失效问题,《java并发编程实践》中提到此问题,并指出这种优化是丑陋的,不赞成使用的,而推荐使用静态内部类实现。
dcl失效的原因:线程有可能得到一个不为null,但是构造不完全的对象。why?造成不可靠的原因是编译器为了提高执行效率的指令重排。只要style什么意思认为在单线程下是没问题的,它就可以进行乱序写入,以保证不要让cpu指令流水线中断。

懒汉式+双重校验锁

4.通过人类的老师静态内部类实现单例
原理:一个类直到被使用时才被初始化,而类初始化的过程是非并行的,这些都有 jls 保证
这也是我自己最常用的单例写法

静态内部类实现单例

5.枚举单例:写法简单,线程安全,并且保证任何情况都是单例
上面的其他实现单例方法在反序列化(提供了一个特别的钩子函数)时会创建新的单例重逢打一字,解决方法是如3中实现read郑成功收复台湾resolve方法返回单例对象,而枚举单例则不存在此问题。

枚举单例

6.使用容器实现单例:可以管理多种类型的单例

本文发布于:2023-04-05 05:18:45,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/90e9257701b0d201cce357fc68dcc30f.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:android设计模式有哪些(android界面设计实例).doc

本文 PDF 下载地址:android设计模式有哪些(android界面设计实例).pdf

标签:懒汉   实例   部类   方法
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图