zoukankan
html css js c++ java
享元模式
复合享元涉及的角色如下:
1、抽象享元角色
2、具体享元
3、复合享元(复合享元是由单纯具体享元复合而成的)//如果是简单享元这条没有
4、享元工厂
5、客户端
简单享元演示代码如下
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Collections;
namespace
FlyweightFactory
{
class
Program
{
//
抽象享元
abstract
class
Cause
//
事业
{
abstract
public
void
OutInput(
string
name);
//
输出所从事的行业
}
//
具体享元(互联网)
class
IT : Cause
{
private
string
work
=
"
从事互联网行业
"
;
override
public
void
OutInput(
string
name)
{
Console.WriteLine(
"
{0} 是{1}
"
,
name, work);
}
}
//
具体享元(房地产)
class
House : Cause
{
private
string
work
=
"
从事房地产行业
"
;
override
public
void
OutInput(
string
name)
{
Console.WriteLine(
"
{0} 是{1}
"
,
name, work);
}
}
//
(享元工厂)
class
CauseFactory
{
private
Hashtable flyweights
=
new
Hashtable();
//
构造函数(享元工厂) 享元工厂作用:就是把多个对象的实例放在一起,好供客户端动态调用
public
CauseFactory()
{
flyweights.Add(
"
I
"
,
new
IT());
flyweights.Add(
"
H
"
,
new
House());
}
//
得到从事的事业(享元)
public
Cause GetCause(
string
key)
{
return
((Cause)flyweights[key]);
}
}
//
客户端
static
void
Main(
string
[] args)
{
string
MaYun
=
"
马云
"
;
string
WangShi
=
"
王石
"
;
CauseFactory f
=
new
CauseFactory();
//
根据不同类别判别从事那个行业
Cause c1
=
f.GetCause(
"
I
"
);
//
字母I对应对象IT行业
c1.OutInput(MaYun);
//
输出马云所从事的行业
Cause c2
=
f.GetCause(
"
H
"
);
//
字母H对应对象House行业
c2.OutInput(WangShi);
//
输出王石所从事的行业
}
}
}
享元模式要点
1、本设计模式主要解决面向对象的代价问题。
2、本模式通过共享对象来减少系统中对象实例个数,从而减少内存消耗。
查看全文
相关阅读:
【HDU 1060】Leftmost Digit
【HLG 1572】表达式计算(后缀表达式+栈的应用)
Vue CLI3 开启gzip压缩
html元素呼吸效果
前端实现在线预览pdf、word、xls、ppt等文件
devServer proxy的使用
7个基础js函数
前端初中高级面试题1
模仿头条导航的左右滚动效果
angular基本入门教程
原文地址:https://www.cnblogs.com/xiaobaigang/p/909839.html
最新文章
4.Hbase Shell 命令
3.Hbase数据模型
1.Hbase集群安装配置(一主三从)
1.Hbase简介
06.网站点击流数据分析项目_模块开发_统计分析
05.网站点击流数据分析项目_模块开发_ETL
Elastic Stack学习
集中式日志分析平台 Elastic Stack(介绍)
Spring事务管理配置以及异常处理
Spring 中如何自动创建代理(spring中的三种自动代理创建器)
热门文章
spring + spring-data-redist + Redis 单机、集群(cluster模式,哨兵模式)
Java volatile 关键字
【POJ 1936】All in All(字符串处理)
【FZU 2195】检查站点
【POJ 3368】Frequent values
【POJ 3321】Apple Tree
【POJ 3083】Children of the Candy Corn
【POJ 2488】A Knight's Journey
【POJ 2352】Stars
【POJ 1195】Mobile phones
Copyright © 2011-2022 走看看