Android设计模式——单例模式(Singleton)
二十三种设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
1 package com.example.main; 2 3 import android.app.Activity; 4 import android.content.Context; 5 import android.os.Bundle; 6 import android.widget.LinearLayout; 7 import android.widget.TextView; 8 9 /* 10 * Android设计模式——单例模式(Singleton) 11 */ 12 13 public class Singleton extends Activity { 14 15 private LinearLayout ly; 16 private LinearLayout sly; 17 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.create); 22 23 ly = (LinearLayout) findViewById(R.id.creately); 24 sly = (LinearLayout) findViewById(R.id.singly); 25 26 Android google = new Android("谷歌",ly,this); 27 google.setName(); 28 29 Android huawei = new Android("华为",ly,this); 30 huawei.setName(); 31 32 //第一次实例化 33 IOS ios = IOS.getInstance("苹果", sly, this); 34 ios.setName(); 35 36 //第二次调用 37 IOS samsung = IOS.getInstance("三星", ly, this); 38 samsung.setName(); 39 } 40 41 /* 42 * Android厂商 43 */ 44 45 class Android{ 46 47 private String name; 48 private LinearLayout ly; 49 private TextView tv; 50 private Context context; 51 52 public Android(String name,LinearLayout ly,Context context){ 53 this.name = name; 54 this.ly = ly; 55 this.context = context; 56 } 57 58 public void setName() { 59 tv = new TextView(context); 60 this.tv.setText(name + "的Android设备"); 61 this.ly.addView(this.tv); 62 } 63 } 64 65 /* 66 * 苹果厂商 67 */ 68 69 static class IOS{ 70 71 private String name; 72 private LinearLayout ly; 73 private TextView tv; 74 private Context context; 75 76 //禁止引用 77 78 private static IOS instance = null; 79 80 //私有构造函数,防止被实例化。 81 82 private IOS(){} 83 84 private IOS(String name,LinearLayout ly,Context context){ 85 this.name = name; 86 this.ly = ly; 87 this.context = context; 88 } 89 90 //创建实例 91 92 public static IOS getInstance(String name,LinearLayout ly,Context context){ 93 94 if (instance == null) { 95 instance = new IOS(name,ly, context); 96 } 97 return instance; 98 } 99 100 public void setName() { 101 tv = new TextView(context); 102 tv.setText("IOS只属于"+name+"公司"); 103 ly.addView(tv); 104 } 105 } 106 }
View Code
转载于:https://www.cnblogs.com/yuge790615/p/4783621.html
Android设计模式——单例模式(Singleton)相关推荐
- 常见设计模式—单例模式(Singleton)
前言 好久没写东西了,但是想着无论什么事还是要坚持自己初心要坚持的东西.写东西不能断! 对于常用的23种设计模式,这里笔者会根据自己学习和出现频率.重要程度进行学习记录吧.并且每种设计模式可能会根据暂 ...
- C++设计模式--单例模式(Singleton)及单例通用模板
概述 C++中的单例模式应该是设计模式中最简单的了,在编码中常见到.那么,简单的总结下 C++中的单例模式写法,以及根据单例模式扩展后的一些写法,最后还有单例的通用模板,可用于快捷创建一个单例类. 单 ...
- 设计模式 -- 单例模式(Singleton)
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- 主要内容包括: 初始单例 ...
- 设计模式——单例模式(Singleton)
保证一个类仅有一个实例,并提供一个访问它的全局访问点.--DP UML类图 模式说明 个人认为单例模式是所有设计模式中最为简单的一个模式,因为实现这个模式仅需一个类,而不像其他模式需要若干个类.这个模 ...
- Python 设计模式: 单例模式(singleton pattern)
2019独角兽企业重金招聘Python工程师标准>>> 如果想在整个程序的运行过程中,某个类只有一个实例的话,可以通过单例模式来实现. 在 Python 中实现单例模式有很多种方式, ...
- 解读设计模式----单例模式(Singleton Pattern)
单例模式可以保证一个类有且只有一个实例,并提供一个访问它的全局访问点.在程序设计中,有很多情况需要确保一个类只能有一个实例.从这句话可以看出,Singleton模式的核心:如何控制用户使用new对一个 ...
- JAVA设计模式-单例模式(Singleton)线程安全与效率
一,前言 单例模式详细大家都已经非常熟悉了,在文章单例模式的八种写法比较中,对单例模式的概念以及使用场景都做了很不错的说明.请在阅读本文之前,阅读一下这篇文章,因为本文就是按照这篇文章中的八种单例模式 ...
- 设计模式---单例模式Singleton
/*** 饿汉式* 类加载到内容后,就实例化一个实例,* JVM保证线程安全: JVM保证每一个Class只会load到内存一次,static关键字是在Class load到内存之后马上就行初始化,也 ...
- 趣谈设计模式 | 单例模式(Singleton) :独一无二的对象
文章目录 单例模式 饿汉模式 懒汉模式 懒汉和饿汉的区别 单例模式 一个类只能创建一个对象,即单例模式,该模式可以保证系统中该类只有一个实例,并提供一个访问它的全 局访问点,该实例被所有程序模块共享. ...
最新文章
- 计算机中文无敌版,奥特曼格斗进化3中文无敌版电脑版
- 有序数组给定始末的中位数c++
- android drawpath大小,Android Path和PathMeasure
- boost::signals2模块连接扩展槽的示例程序,使用信号的 connect_extended 和 extended_slot_type
- PHP 入门 - 8.数据库
- CDS view里inner join, left outer join和association的区别
- 浅谈程序员的职业规划
- 现有类 成 mfc类_女人不想成“黄脸婆”,4类食物是衰老“催化剂”,女人尽量远离_氧化...
- vnpy学习_03学习推荐
- 物联网时代,隐私还有救吗?
- 第一章 Spring的简单剖析
- SQL variable type
- python notebook右侧网页_Python Notebook介绍
- 正弦积分与余弦积分函数
- 人工智能智能制作PPT构想---论文与PPT介绍
- 3dmax 视频全集
- Java实现:挖金矿问题
- 京东无货商品强制加入购物车
- 小程序源码:登录接口已修复梦想贩卖机V2 2.0.4 修复版
- html盒子两个背景图片,css怎么实现两张图片叠加在一起,css添加盒子背景图片
热门文章
- gcc-linux6.3,[环境配置]Ubuntu16.04下编译安装gcc6.3.0
- Linux新建yaml文件,yaml文件创建pod和deployment
- 怎么用PHP语句做出增改删查功能,PHP、MYSQLI实现简单的增、删、改、查功能(初学者)...
- 四级计算机网络考试大纲,2017年全国计算机等级考试四级计算机网络考试大纲...
- c语言 10以内加法,求助 给小学生出题,自己选加减乘除 做10题 10以内的数 然后统计分...
- Kubernetes 核心概念
- 6 个 K8s 日志系统建设中的典型问题,你遇到过几个?
- 电脑的发展史_新时代新征程,新华电脑教育母公司中国东方教育成功港股上市!...
- 图像恢复迭代算法的加速
- 分类评分函数 score function