- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GOF的设计的模式变体分类的研究
GOF的设计的模式变体分类的研究
摘要:设计模式提供一种可复用的解决方案,并有助于提高软件研发的效率。但随着GOF设计模式成熟化与规模化,现有23种经典设计模式已不能满足业务需求,为此,众多学者对传统GOF设计模式进行了演化,该文致力于演化后设计模式的研究,提出了设计模式变体的概念,研究了变体特征,以装饰者模式与代理模式为例,给出了具体的研究实现,取得了较好的研究效果,说明了设计模式变体值得进一步深入研究。
关键词:设计模式;设计模式变体;方案演化;设计模式分类;GOF
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)31-0085-02
1 概述
设计模式是一套经典的,并得到了广大软件开发人员认可的可复用设计方案[1-3]。目前,(Gang of four, GOF)GOF设计模式主要分为结构型、行为型及创建型3类共计23种[4]。随着设计模式应用技术的普及化与成熟化,现有设计模式在实际应用被不断演化,并形成3类GOF标准设计模式变体[5-6]。文?I[7]基于形式概念分析FCA与实例推理技术CBR,并应用余弦理论提出一种设计模式方案推荐系统。文献[8]结合图形理论与矩阵相似计算理论提出一种设计模式检测策略。文献[9]对设计模式参与者角色间的关系进行了分类研究,侧重探讨了改变设计模式意图的附加关系,并依据特征制定了附加关系识别规则。文献[10]基于子图同构原理与UML类图匹配策略进行了设计模式实例挖掘。
为此,进行设计模式研究是非常有意义的,而设计模式演化后的变体更是研究的热点与难点,本文工作将对典型设计模式变体进行研究分析与实现。
2 GOF模式变体分类识别研究
为研究设计模式变体,以结构型装饰者模式与代理模式为例进行深入研究。
2.1 装饰者设计模式变体
GOF标准装饰者模式意图不是为某个类,而是为一个具体对象增加新的功能。图1为一个典型的装饰者模式变体。
――――――一person接口―――――――
public interface Person { void eat();}
――――――-二Man―――――――――――
public class Man implements Person {
public void eat() {
System.out.println(男人在吃); }}
――――――-三Decorator抽象类――――――
public abstract class Decorator implements Person {
protected Person person;
public void setPerson(Person person) {
this.person = person; }
public void eat() {person.eat();}}
――――――四Decorator的扩展类―――――
public class ManDecoratorA extends Decorator {
public void eat() {
super.eat();
reEat();
System.out.println(ManDecoratorA类);}
public void reEat() {
System.out.println(再吃一顿饭);}}
public class ManDecoratorB extends Decorator {
public void eat() {
super.eat();
System.out.println(吃菜);
System.out.println(ManDecoratorB类); }}
――――――――-六Container――――――――
public class Container {
public ManDecoratorA ManDecoratorA(Person person){
ManDecoratorA A= new ManDecoratorA();
A.setPerson(person);
return A; }
public ManDecoratorB ManDecoratorB(Person person){
ManDecoratorB B= new ManDecoratorB();
B.setPerson(person);
return B;}}
――――――――七test类――――――――
public c
您可能关注的文档
- GFG8026H信号源实验教学的方法的研究.doc
- GEVO16柴油机活塞环检修工艺的研究.doc
- GE机体外模制作及组装创新的研究.doc
- GE深耕材料科学百年根基改造消费电子的设计新形貌.doc
- GE集团金融业务发展的经验及启示.doc
- GFRP抗浮锚杆拉拔试验的研究.doc
- GFRP筋混凝土短柱偏压性能试验的研究.doc
- GFRP锚固的体系常见破坏的模式分析.doc
- GFRP钢组合结构桥梁施工技术的研究.doc
- Gharles Handy&Tom Peters一起的思考你.doc
- Go for it 八上Unit Two What’s the matter教学的设计.doc
- Go for it英语课堂多元阅读的模式的研究.doc
- Going places教学的设计比较的研究.doc
- Google Earth的应用的研究概述.doc
- GONE理论视角下国企高管侵财型职务犯罪行为的模式分析及治理.doc
- Google Earth在铁路选线中的应用.doc
- Google SketchUp软件建模技术及的技巧之一.doc
- Google Reader个人知识管理小的技巧.doc
- Google SketchUp软件建模技术及的技巧之二.doc
- GPCA―TIG焊水冷焊枪的设计及改进.doc
文档评论(0)