当前位置: 首页 > news >正文

建设网站免费模板淘宝客建立网站推广怎么做

建设网站免费模板,淘宝客建立网站推广怎么做,使用循环视频做背景的网站,咸阳专业网站开发哪家好Gof定义 表示一个作用于某对象结构中的各元素的操作。它可以在不改变各元素的类的前提下定义作用于这些元素的新的操作。 动机 在软件构建过程中#xff0c;由于需求的改变#xff0c;某些类层次结构中常常需要增加新的行为#xff08;方法#xff09;#xff0c;如果直接… Gof定义 表示一个作用于某对象结构中的各元素的操作。它可以在不改变各元素的类的前提下定义作用于这些元素的新的操作。 动机 在软件构建过程中由于需求的改变某些类层次结构中常常需要增加新的行为方法如果直接在基类中做这样的更改将会给子类带来很繁重的变更负担甚至破坏原有设计。如何在不更改类层次结构的前提下在运行时根据需要透明地为类层次结构上的各个类动态添加新的操作从而避免上述问题请看下面访问者模式结构图和代码。 访问者模式结构图 基本代码如下 /// summary /// 声明了一个或多个需要添加的操作 /// /summary public abstract class Visitor {public abstract void VisitorConcreteElementA(ConcreteElementA concreteElementA);public abstract void VisitorConcreteElementB(ConcreteElementB concreteElementB); } /// summary /// 操作的具体类1 /// /summary public class ConcreteVisitor1:Visitor {public override void VisitorConcreteElementA(ConcreteElementA concreteElementA){Console.WriteLine({0}访问{1}, this.GetType().Name, concreteElementA.GetType().Name);}public override void VisitorConcreteElementB(ConcreteElementB concreteElementB){Console.WriteLine({0}访问{1}, this.GetType().Name, concreteElementB.GetType().Name);} } /// summary /// 操作的具体类2 /// /summary public class ConcreteVisitor2 : Visitor {public override void VisitorConcreteElementA(ConcreteElementA concreteElementA){Console.WriteLine({0}访问{1}, this.GetType().Name, concreteElementA.GetType().Name);}public override void VisitorConcreteElementB(ConcreteElementB concreteElementB){Console.WriteLine({0}访问{1}, this.GetType().Name, concreteElementB.GetType().Name);} } /// summary /// 接受Visitor并使用其操作的抽象类 /// /summary public abstract class Element {public abstract void Accept(Visitor visitor); } /// summary /// 接受Visitor并使用其操作的具体类 /// /summary public class ConcreteElementA : Element {public override void Accept(Visitor visitor){visitor.VisitorConcreteElementA(this);}public void OperationA() { } } /// summary /// 接受Visitor并使用其操作的具体类 /// /summary public class ConcreteElementB : Element {public override void Accept(Visitor visitor){visitor.VisitorConcreteElementB(this);}public void OperationB() { } } public class ObjectStructure {private ListElement list new ListElement();public void Add(Element element){list.Add(element);}public void Del(Element element){if(list.Contains(element))list.Remove(element);}public void Accept(Visitor visitor){foreach (Element e in list){e.Accept(visitor);}} } /// summary /// 客户端代码 /// /summary class Program {static void Main(string[] args){ObjectStructure os new ObjectStructure();os.Add(new ConcreteElementA());os.Add(new ConcreteElementB());Visitor cv1 new ConcreteVisitor1();Visitor cv2 new ConcreteVisitor2();os.Accept(cv2);os.Accept(cv1);} } Visitor模式的几个要点 Visitor模式通过所谓双重分发double dispatch来实现在不更改Element类层次结构的前提下在运行时透明地为类层次结构上的各个类动态添加新的操作。Visitor模式通过所谓双重分发double dispatch来实现在不更改Element类层次结构的前提下在运行时透明地为类层次结构上的各个类动态添加新的操作。Visitor模式的最大缺点在于扩展类层次结构增添新的Element子类会导致Visitor类的改变。因此Vistor模式适用于“Element类层次结构稳定而其中的操作却经常面临频繁改动”。  返回开篇索引转载于:https://www.cnblogs.com/oec2003/archive/2010/02/02/1662265.html
http://www.pierceye.com/news/831017/

相关文章:

  • 网站建设设计大作业重庆公共信息交易资源网
  • 做公司网站的多少钱公司建网站价格
  • 河间米各庄网站建设制作网站页面模板 建设中
  • wordpress首页添加站点统计小工具住房城乡建设部门门户网站
  • 网站建设在哪块做创业园网站建设
  • 郑州搭建网站公司互联网公司网站建设的目的
  • 响应式视频网站什么是权重高的网站
  • 做教育网站挣钱我的网站域名是什么
  • django 网站开发实例哪里可以检测胎儿性别
  • 刷排名凡搜网站宝微信5000人接推广费用
  • 网站优化外包服务专业网站建设服务商
  • 江西企业网站建设费用wordpress正在执行例行维护_请一分钟后回来.
  • 苏宁推客如何做网站创建一个网站的步骤
  • 优化网站广告优化东莞美食网站建设报价
  • 单页网站的营销定制应用软件有哪些
  • 如何建立一个网站详细步骤品牌建设可以从哪方面入手
  • 杨浦做网站福州网站公司
  • 厦门网站建设工程汽车网站正在建设中模板
  • 关于网站规划建设方案书怎么制作官网
  • 网站域名注销流程昌邑微信网站建设公司
  • 如何做众筹网站wordpress手机投放广告
  • 贵阳制作网站的公司如何找友情链接
  • 苏州诶茵诶公司网站flash网站怎么制作
  • 域名申请网页制作网站建设珠海免费模板建站
  • 行情网免费网站大全wordpress 头像上传路径
  • 网站开发联系方式做网站如何提需求
  • 小程序定制团队seo顾问推推蛙
  • 徐州网站建设公司哪家好经典广告
  • 百度的官方网站wordpress提示插件安装
  • 网站的按钮怎么做 视频宁波网站建设用什么软件