- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计模式十八篇-course
设计模式十八篇
设计模式之Flyweight——打球篇
周末没事,和朋友约好去体育馆(Gymnasium)打球,这个体育馆(Gymnasium)提供各种球种,因为
我们人多,因此选择了羽毛球(badminton),兵乓球(pingpangball)、排球(vollyball)等球种,我
们首先要填写选球清单(playBallList),然后去器材部领球。
下面我们看看该如何实现这个过程呢?
1、我们首先先定义玩球(PlayBall)这样一个接口类:
public interface PlayBall {
public void playBall( String ballName); //玩球
}
2、玩具体的球(PlayConcreteBall)是对玩球(PlayBall)接口的具体实现:
public class PlayConcreteBall implements PlayBall{
public void playBall(String concreteBallName) {
System.out.println(玩+concreteBallName+ !);
}
}
3、定义体育馆(Gymnasium)类:
public class Gymnasium {
private Hashtable playBallList = new Hashtable(); //体育馆根据我们的需要填写的选球清单
public PlayBall getPlayBall(Object key) { //得到要玩的球
PlayBall playBall = (PlayBall) playBallList.get(key); //根据清单获得所需的球
if (playBall == null) { //清单上没有这种球
//虽然清单上没有这种球,但还想玩,那你先得到这种球,然后补清单
playBall = new PlayConcreteBall();
playBallList.put(key, playBall); //将这种球补写进清单
}
return playBall;
}
public Hashtable getPlayBallList() { //获得选球清单
return playBallList;
}
}
4、编写测试类:
public class Test {
1
public static void main(String args[]) {
Gymnasium gymnasium = new Gymnasium(); //我们去的体育馆
PlayBall badminton = gymnasium.getPlayBall( 羽毛球 ); //想得到羽毛球
PlayBall pingpangball = gymnasium.getPlayBall( 兵乓球 ); //想得到兵乓球
PlayBall vollyball = gymnasium.getPlayBall( 排球 ); //想得到排球
Hashtable selectedBallList = gymnasium.getPlayBallList(); //器材部得到选球清单
((PlayBall)selectedBallList.get(羽毛球)).playBall(羽毛球); //得到羽毛球
((PlayBall)selectedBallList.get(兵乓球)).playBall(兵乓球); //得到兵乓球
((PlayBall)selectedBallList.get(排球)).playBall(排球); //得到排球
}
}
5、说明:
A:Flyweigh
您可能关注的文档
- 模板-浙江科技厅.doc
- 表1主要品种特性品种名花色花形开花期草丈耐病性寒娘赤一重.pdf
- 槐耳菌与槐耳菌质鉴别及质量标准探讨-中国药品标准.doc
- 模糊向量—转移矩阵法在生态影响评价中的应用-生态学杂志.pdf
- 模糊推论应用于消费者决策法则之研究.pdf
- 模糊最小生成树-read.doc
- 表一拟为承包本合同工程设立的组织机构图.doc
- 莫拉克降雨引致高屏地区边坡浅层崩塌灾害勘查与稳定性数值分析案例.pdf
- 菌根真菌磷酸酶活性对红三叶草生境中土壤有机磷亏缺的影响-生态学报.pdf
- 荷花玉兰叶绿体全基因组高通量测序及结构解析-生物通.pdf
- 重庆七中2025届高考仿真卷化学试卷含解析.doc
- 福建省福州市福建师大附中2025届高考全国统考预测密卷生物试卷含解析.doc
- 山东省聊城市高唐一中2025届高三下学期联考生物试题含解析.doc
- 2025届贵州省黔东南市重点中学高考历史一模试卷含解析.doc
- 2025届广东省五校高三下学期联合考试生物试题含解析.doc
- 河南省邓州市花洲实验高级中学2025届高考化学倒计时模拟卷含解析.doc
- 2025届忻州市第一中学高考压轴卷生物试卷含解析.doc
- 安徽师范大学附属中学2025届高考历史倒计时模拟卷含解析.doc
- 2025届山东省临淄中学高三最后一卷历史试卷含解析.doc
- 湖南省长沙市宁乡一中2025届高三压轴卷历史试卷含解析.doc
文档评论(0)