软件开发设计模式(二)—多例模式
来源:互联网 发布:2016最大网络传销案 编辑:程序博客网 时间:2024/05/20 06:52
多例模式的定义:作为对象的创建模式,多例模式中的多例类可以有多个实例,而且多例类必须自己创建、管理自己的实例,并向外界提供自己的实例。
多例模式的特点:
所谓的多例模式(Multiton Pattern),实际上就是单例模式的自然推广。作为对象的创建模式,多例模式或多例类有如下的特点:
(1)多例类可有多个实例
(2)多例类必须自己创建、管理自己的实例,并向外界提供自己的实例,因此,他的构造函数也是private的,这点跟单例模式是相同的。
(3)根据是否有实例上限分为:有上限多例类和无上限多例类。
举个例子,假设一个人有N个老婆(这里假设有两个老婆),那么对象是有限的(这里为2个),简单粗暴直接上代码吧,有上限多例模式具体实现:
class Wives { //创建两个实例 private static Wives wife01 = new Wives(); private static Wives wife02 = new Wives(); //私有构造函数 private Wives() { } //公开静态创建对象方法 public static Wives GetInstance(int whichOne) { if (whichOne == 0) return wife01; return wife02; } }
测试代码class Program { private static Wives wife1, wife2; static void Main(string[] args) { GetWife(); } private static void GetWife() { wife1 = Wives.GetInstance(0); wife2 = Wives.GetInstance(1); Wives[] wives = new Wives[2] { wife1, wife2 }; Random random = new Random(); for (int i = 1; i <= 31; i++) { int index = random.Next(0, 2); Console.WriteLine("第"+i+"天侍奉的是:"+wives[index].GetHashCode().ToString()); } } }
输出结果见图片无上限多例模式(事先并不知道实例的具体个数,因为实例个数无法预知,因为通常的做法是用集合来存储实例。)不太懂这个无上限多例模式,感觉直接new会方便很多,这个博主有写关于无上限多例模式的实现(http://blog.csdn.net/zl3450341/article/details/6878932)
阅读全文
0 0
- 软件开发设计模式(二)—多例模式
- 软件开发设计模式(一)-单例模式
- 软件开发设计模式(三)—简单工厂模式
- 软件开发设计模式
- 软件开发常用设计模式—单例模式总结(c++版)
- RUP软件开发设计模式
- 软件开发技术:设计模式
- 模式设计(二)------单例模式
- 设计模式(二)--单例模式
- 设计模式(二)单例模式
- 设计模式(二):单例模式
- 设计模式(二)单例模式
- 设计模式—策略模式(二)
- ios 开发(二)设计模式
- iOS开发之设计模式(二)
- 可复用面向对象软件基础——设计模式(二)之工厂方法模式
- 设计模式(二)——单例模式(Singleton)
- 设计模式——单例模式(二)
- Error:Cause: com.android.sdklib.repository.FullRevision AS错误解决
- Entity Framework 复合主键配置(多字段主键)
- oracle图形化安装工具(vnc配置)
- 市场研究中的数据分析知识整理 (十)-贝叶斯的方案
- Leetcode-Roman to Integer-Python
- 软件开发设计模式(二)—多例模式
- iOS-App转让流程
- T-SQL游标学习总结
- Maven项目打包测试时如何跳过测试类
- IDEA 下载 汉化 和通过码
- SVN之使用原则
- vue中的父子组件调用
- LeetCode 二叉树路径问题 Path SUM(①②③)总结
- 几种工厂模式的区别