首页 > 其他分享 >23设计模式 24 visitor 访问者模式

23设计模式 24 visitor 访问者模式

时间:2022-08-17 18:34:30浏览次数:71  
标签:24 AD 23 visitor get VIP User SVIP 设计模式

   有 这样一种情况 ,看一个视频    用户分     normal,  VIP ,SVIP  

  abstract  User  {

}

Normal :User

VIP:User

SVIP  :User   

在子类中override  User中的一些方法。   

现在要求新的业务, 在VIP 中根据用户年龄段分别推送广告。   我 第一反应是增加   VIP 的子类   VIPAge1    VIPAge2  VIPAge3

然后再   VIPAge1    VIPAge2  VIPAge3 中分别写业务逻辑,    VIPAge1    VIPAge2  VIPAge3 的声明上端直接指定,-----------可以实现业务。

现在又有原因,不能在上端 判断 VIPAge1    VIPAge2  VIPAge3 .也就是无法声明,同时要求   normal 和SVIP也要加相应广告推送。且时长不同,内容不同 ,判断不同(来源不同))

按我上面的方法能做新增的子类会无穷尽的,  

因此新增一个   ------新增Visitor    用访问者模式, 

abstract  visitor   {

  get AD  noraml  {}

get AD VIP  {}

get AD  SVIP{}

}

------------------

Age Get AD:visitor

{

  override get AD VIP {}

}

Source Get AD:visitor

{

  override get AD  noraml  {}

}

----------------

上端调用   viditor

VIP:User{

实现 

public override void GetADVisitor(IVisitor visitor)
{
visitor.GetADVip(this);//this 是当前的实例
}

age Get AD :visitor 中实现真正的业务逻辑

{

get AD VIP(  user) 

}

相当于把业务逻辑转移,     优点    visitor 可随意扩展,,     但是    normal,  VIP ,SVIP   一动的话,  变动会很大

标签:24,AD,23,visitor,get,VIP,User,SVIP,设计模式
From: https://www.cnblogs.com/soulice/p/16596177.html

相关文章

  • C++primer练习14.10-23
    练习14.10对于Sales_data的输入运算符来说给定下面的输入会发生什么?(a)0-201-99999-91024.95正常输入(b)1024.950-210-99999-9最后一个输入格式错误,会chongz练习14.11......
  • Bzoj 2724 [Violet 6]蒲公英
    原题链接https://darkbzoj.cc/problem/2724大致题意:给一个长度为n的序列,进行m次询问,每次询问输出区间内出现次数最多的数,强制在线。离散化加分块对于离散化后的每个数......
  • 2.错误代码C2440
    错误 C2440 “初始化”:无法从“constchar[5]”转换为“char*”从整型强制转换为指针类型要求reinterpret_cast、C样式强制转换或函数样式强制转换修改方案:主界面......
  • 俄罗斯联邦发布第1249号法令简化进口和标签要求
    2022年7月22日,俄罗斯联邦政府发布了第1249号法令“关于353号法令附件18的修正”,该法令已于发布后立即生效。该法令简化对于产品的进口和标签要求,要点如下:1.适用于EAEUEAC......
  • Redis Desktop Manager for Mac(Redis可视化工具) v2021.10.236中文版
    mac软件下载:https://mac.macsc.com/mac/2697.html?id=MzI1OTY2 RedisDesktopManagermac版是一个快速、简单、支持跨平台的RedisDB管理工具,专为Mac用户设计,基于Qt5......
  • 《GB28244-2012》PDF下载
    《GB28244-2012自动锻压机安全技术要求》PDF下载《GB28244-2012》简介本标准规定了自动锻压机的安全技术要求;本标准适用于自动锻压机,包括各类冷镦机和冷成形机。......
  • 《GB28243-2012》PDF下载
    《GB28243-2012液压板料折弯机安全技术要求》PDF下载《GB28243-2012》简介本标准规定了液压板料折弯机的安全技术要求和措施;本标准适用于冷加工金属或部分是金属材料......
  • 《GB28242-2012》PDF下载
    《GB28242-2012螺旋压力机安全技术要求》PDF下载《GB28242-2012》简介本标准规定了螺旋压力机的安全技术要求;本标准适用于摩擦螺旋压力机、电动螺旋压力机、液压螺旋......
  • 《GB28240-2012》PDF下载
    《GB28240-2012剪板机安全技术要求》PDF下载《GB28240-2012》简介本标准规定了剪板机的安全技术要求和措施;本标准适用于剪切金属板材或其他板材的剪板机及其附属装......
  • 《GB28241-2012》PDF下载
    《GB28241-2012液压机安全技术要求》PDF下载《GB28241-2012》简介本标准规定了金属冷加工用液压机设计、制造和使用的安全技术要求和措施;本标准适用于金属冷加工用液......