二十三种设计模式分为三大类:

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

  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)相关推荐

  1. 常见设计模式—单例模式(Singleton)

    前言 好久没写东西了,但是想着无论什么事还是要坚持自己初心要坚持的东西.写东西不能断! 对于常用的23种设计模式,这里笔者会根据自己学习和出现频率.重要程度进行学习记录吧.并且每种设计模式可能会根据暂 ...

  2. C++设计模式--单例模式(Singleton)及单例通用模板

    概述 C++中的单例模式应该是设计模式中最简单的了,在编码中常见到.那么,简单的总结下 C++中的单例模式写法,以及根据单例模式扩展后的一些写法,最后还有单例的通用模板,可用于快捷创建一个单例类. 单 ...

  3. 设计模式 -- 单例模式(Singleton)

    写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- 主要内容包括: 初始单例 ...

  4. 设计模式——单例模式(Singleton)

    保证一个类仅有一个实例,并提供一个访问它的全局访问点.--DP UML类图 模式说明 个人认为单例模式是所有设计模式中最为简单的一个模式,因为实现这个模式仅需一个类,而不像其他模式需要若干个类.这个模 ...

  5. Python 设计模式: 单例模式(singleton pattern)

    2019独角兽企业重金招聘Python工程师标准>>> 如果想在整个程序的运行过程中,某个类只有一个实例的话,可以通过单例模式来实现. 在 Python 中实现单例模式有很多种方式, ...

  6. 解读设计模式----单例模式(Singleton Pattern)

    单例模式可以保证一个类有且只有一个实例,并提供一个访问它的全局访问点.在程序设计中,有很多情况需要确保一个类只能有一个实例.从这句话可以看出,Singleton模式的核心:如何控制用户使用new对一个 ...

  7. JAVA设计模式-单例模式(Singleton)线程安全与效率

    一,前言 单例模式详细大家都已经非常熟悉了,在文章单例模式的八种写法比较中,对单例模式的概念以及使用场景都做了很不错的说明.请在阅读本文之前,阅读一下这篇文章,因为本文就是按照这篇文章中的八种单例模式 ...

  8. 设计模式---单例模式Singleton

    /*** 饿汉式* 类加载到内容后,就实例化一个实例,* JVM保证线程安全: JVM保证每一个Class只会load到内存一次,static关键字是在Class load到内存之后马上就行初始化,也 ...

  9. 趣谈设计模式 | 单例模式(Singleton) :独一无二的对象

    文章目录 单例模式 饿汉模式 懒汉模式 懒汉和饿汉的区别 单例模式 一个类只能创建一个对象,即单例模式,该模式可以保证系统中该类只有一个实例,并提供一个访问它的全 局访问点,该实例被所有程序模块共享. ...

最新文章

  1. 计算机中文无敌版,奥特曼格斗进化3中文无敌版电脑版
  2. 有序数组给定始末的中位数c++
  3. android drawpath大小,Android Path和PathMeasure
  4. boost::signals2模块连接扩展槽的示例程序,使用信号的 connect_extended 和 extended_slot_type
  5. PHP 入门 - 8.数据库
  6. CDS view里inner join, left outer join和association的区别
  7. 浅谈程序员的职业规划
  8. 现有类 成 mfc类_女人不想成“黄脸婆”,4类食物是衰老“催化剂”,女人尽量远离_氧化...
  9. vnpy学习_03学习推荐
  10. 物联网时代,隐私还有救吗?
  11. 第一章 Spring的简单剖析
  12. SQL variable type
  13. python notebook右侧网页_Python Notebook介绍
  14. 正弦积分与余弦积分函数
  15. 人工智能智能制作PPT构想---论文与PPT介绍
  16. 3dmax 视频全集
  17. Java实现:挖金矿问题
  18. 京东无货商品强制加入购物车
  19. 小程序源码:登录接口已修复梦想贩卖机V2 2.0.4 修复版
  20. html盒子两个背景图片,css怎么实现两张图片叠加在一起,css添加盒子背景图片

热门文章

  1. gcc-linux6.3,[环境配置]Ubuntu16.04下编译安装gcc6.3.0
  2. Linux新建yaml文件,yaml文件创建pod和deployment
  3. 怎么用PHP语句做出增改删查功能,PHP、MYSQLI实现简单的增、删、改、查功能(初学者)...
  4. 四级计算机网络考试大纲,2017年全国计算机等级考试四级计算机网络考试大纲...
  5. c语言 10以内加法,求助 给小学生出题,自己选加减乘除 做10题 10以内的数 然后统计分...
  6. Kubernetes 核心概念
  7. 6 个 K8s 日志系统建设中的典型问题,你遇到过几个?
  8. 电脑的发展史_新时代新征程,新华电脑教育母公司中国东方教育成功港股上市!...
  9. 图像恢复迭代算法的加速
  10. 分类评分函数 score function