享元模式(Flyweight)
来源:互联网 发布:数据安全 编辑:程序博客网 时间:2024/05/22 03:13
感觉就像是在运用c++中的STL容器map:
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 享元模式{ abstract class Game //游戏 { public abstract void Play(); } //具体的游戏 class ConcreteGame : Game { private string name = ""; public ConcreteGame(string name) { this.name = name; } public override void Play() { Console.WriteLine("运行游戏:" + name); } } class GameFactory //游戏工厂 { private Hashtable flyweights = new Hashtable(); //获得游戏分类 public Game GetGameCategory(string key) { if (!flyweights.ContainsKey(key)) flyweights.Add(key, new ConcreteGame(key)); return ((Game)flyweights[key]); } //获得游戏分类总数 public int GetGameCount() { return flyweights.Count; } } class Program { static void Main(string[] args) { GameFactory f = new GameFactory(); Game zs = f.GetGameCategory("斗地主"); zs.Play(); Game ls = f.GetGameCategory("斗地主"); ls.Play(); Game ww = f.GetGameCategory("斗地主"); ww.Play(); Game zl = f.GetGameCategory("麻将"); zl.Play(); Game sq = f.GetGameCategory("麻将"); sq.Play(); Game zb = f.GetGameCategory("麻将"); zb.Play(); Console.WriteLine("游戏逻辑总数为 {0}", f.GetGameCount()); Console.Read(); } }}
阅读全文
0 0
- 享元(FlyWeight)模式
- 享元模式Flyweight
- FlyWeight 享元模式
- 享元模式(Flyweight)
- 享元模式 ---flyweight
- 享元模式--Flyweight
- Flyweight 享元模式
- 享元模式(Flyweight),
- 享元模式/Flyweight
- 享元模式flyweight
- 享元模式(Flyweight)
- flyweight 享元模式
- 享元模式-Flyweight
- Flyweight - 享元模式
- 享元模式(flyweight)
- 享元模式 flyweight
- 享元模式(flyweight)
- 享元模式(FlyWeight)
- 关于网络协议封装的一些新想法
- vs2015 + EasyX loadimage()用法,和把图片添加为项目资源
- CSS清除浮动大全共8种方法
- [机器学习] 深度学习之caffe1——软件配置与测试
- 【响应式Web设计】读书笔记
- 享元模式(Flyweight)
- 判断元素是否进入二级菜单,使用setInterval()与setTimeout()时出现的问题
- 在相册查看保存的图片
- 浅析MVC和MVP
- 运算符优先级
- android 倒计时 实现,很简单方便的一种方法,不用考虑资源释放
- oralce 报错 ora-16032 parameter log_archive_dest_1 destination string cannot be transtlated
- 51 Nod1099贪心
- RAC 双向绑定实现案例