最后一个结构型,享元。没有太多的项目经验,对这种模式只有一种概念上的理解,就是为了节约内存等资源,把可重用的东西只申请一次,然后处处调用,同时用Hash进行管理。

直接上图:

代码:

/*********  大话设计模式上的代码 ************/

abstract class Flyweight{
public abstract void Operation(int extrinsicstate);
} class ConcreteFlyweight : Flyweight{
public override void Operation(int extrinsicstate){
Console.WriteLine("具体Flyweight : " + extrinsicstate);
}
} class UnshareConcreteFlyweight : Flyweight{
public override void Operation(int extrinsicstate){
Console.WriteLine("不共享的具体Flyweight : " + extrinsicstate);
}
} class FlyweightFactory{
private Hashtable flyweights = new Hashtable();
public FlyweightFactory(){
flyweights.add("X",new ConcreteFlyweight());
flyweights.add("Y",new ConcreteFlyweight());
}
public Flyweight GetFlyweight(string key){
return ((Flyweight)flyweights[key]);
}
}

最新文章

  1. 【重大更新】开源跨平台物联网通讯框架ServerSuperIO 2.0(SSIO)下载
  2. CF576E
  3. Android项目实战(二十七):数据交互(信息编辑)填写总结
  4. spring Quartz多个定时任务的配置
  5. oracle连接本地数据库
  6. iOS 完美解决 interactivePopGestureRecognizer 卡住的问题
  7. hdwiki 学习笔记 01
  8. haproxy配置文件简单管理
  9. HDU 1247
  10. Oracle存储过程procedure
  11. Session Cookie的HttpOnly和secure属性
  12. .net工作流引擎ccflow新增支持PostgreSQL数据库的功能的发布说明
  13. CCPC-Wannafly Winter Camp Day1部分题目解析
  14. redis的pub/sub命令
  15. Python - 安装并配置Anaconda环境
  16. delphi有关获取其他程序的窗口及对窗口内控件的操作
  17. 使用Ajax出现302 Moved Temporarily
  18. 谈谈 在 .Net 生态里为什么没有 Hadoop 系列 ?
  19. 20155238 2016-2017-2 《Java程序设计》第三周学习总结
  20. net core mysql 组件记录

热门文章

  1. oracleDB python chines_miscode
  2. 安装Nginx到linux服务器(Ubuntu)详解
  3. android上的bin/sbin/xbin等各种目录
  4. 给opencart产品页添加额外信息
  5. kubernetes命令详情
  6. python 不知道是啥
  7. Cocos2dx Android环境编译出错:jni/Android.mk: Cannot find module with tag 'scripting/lua-bindings' in import path
  8. IconFont --阿里巴巴矢量库
  9. svn 安装
  10. zabbix监控实战<1>