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

化妆网站模板苏州营销型网站制作多少钱

化妆网站模板,苏州营销型网站制作多少钱,百度搜索大全,中卫网站设计公司概念 将数据结构和操作分离#xff0c;使操作集合可以独立于数据结构变化。 角色介绍 Visitor#xff1a;抽象访问者#xff0c;为对象结构每个具体元素类声明一个访问操作。Element#xff1a;抽象元素#xff0c;定义一个accept方法ConcreteElement#xff1a;具体元…概念 将数据结构和操作分离使操作集合可以独立于数据结构变化。 角色介绍 Visitor抽象访问者为对象结构每个具体元素类声明一个访问操作。Element抽象元素定义一个accept方法ConcreteElement具体元素实现抽象元素的accept方法在accept方法中调用访问者的访问方法以完成对一个元素的操作。ConcreteVisitor具体访问者实现抽象访问者声明操作。ObjectStructure对象结构是一个集合用于存放元素对象并提供遍历内部元素的方法通常由List、Set、Map等集合类实现。 UML 代码实现 interface Visitor {fun visit(wine: Wine): Floatfun visit(pig: Pig): Floatfun visit(television: Television): Float } interface Goods {fun accept(visitor: Visitor): Floatfun account(): Float }/*** 酒类*/ data class Wine(val count: Int,val price: Float ) : Goods {override fun accept(visitor: Visitor): Float {return visitor.visit(this)}override fun account(): Float {println(酒按瓶计价购买数量为${count}瓶单价为$price)return count * price} }/*** 猪肉*/ data class Pig(val count: Int,val price: Float ) : Goods {override fun accept(visitor: Visitor): Float {return visitor.visit(this)}override fun account(): Float {println(猪肉按斤计价购买数量为${count}斤单价为$price)return count * price} }/*** 电视*/ data class Television(val count: Int,val price: Float ) : Goods {override fun accept(visitor: Visitor): Float {return visitor.visit(this)}override fun account(): Float {println(电视按件台价购买数量为${count}台单价为$price)return count * price} } class VisitorImpl : Visitor {override fun visit(wine: Wine): Float {return wine.account()}override fun visit(pig: Pig): Float {return pig.account()}override fun visit(television: Television): Float {return television.account()} } class ShoppingList {val list ArrayListAny()fun add(any: Any) {list.add(any)}fun remove(any: Any) {list.remove(any)} } class AccountMachine {private var awt: Float 0ffun getAwt(list: MutableListAny): Float {val visitor: Visitor VisitorImpl()for (item in list) {awt (item as Goods).accept(visitor)}return awt} }fun main() {val wine Wine(10, 5f)val pig Pig(2, 18f)val tv Television(1, 2300f)val shoppingList ShoppingList()shoppingList.add(wine)shoppingList.add(pig)shoppingList.add(tv)val accountMachine AccountMachine()val awt accountMachine.getAwt(shoppingList.list)println(总价$awt) }优缺点 优点 分离操作和数据结构增加新操作更容易集中化操作 缺点增加新数据结构困难破坏封装 应用场景 适用于数据结构稳定操作易变对象的操作之间无关联的场景。 编译器文档转化比如markdown转html 总结 安卓开发中RecyclerViewAdapter是访问者对象而RecyclerView.ViewHolder是一个被访问者对象。在RecyclerView.Adapter中 我们需要实现 onCreateViewHolder()、onBindViewHolder()和getItemCount()等方法。这些方法被用于创建 ViewHolder对象、 绑定数据和获取列表项的数量等操作。在RecyclerView.ViewHolder中我们需要定义列表项的视图控件并在构造函数中将其初始化。 当Adapter对象需要绑定数据时ViewHolder对象会被创建并传递给Adapter对象的onBindViewHolder()方法中从而实现对列表项的访问和操作。 还有就是我们在写一些自定义Lint、Idea或者grade插件时也会见到访问者模式。 参考 访问者模式及其应用场景重新认识访问者模式从实践到本质 设计模式-访问者模式及应用 设计模式访问者Visitor模式
http://www.pierceye.com/news/418496/

相关文章:

  • 可以做动图的视频网站校园网站建设的目的
  • 专业网站制作公司塞尼铁克dw网页设计作品简单
  • 福州做网站公司有哪些中小企业网站制作塞尼铁克
  • 公司网站 钓鱼网站网站建设实训报告的内容怎么写
  • 摄影网站建设内容硬件开发语言有哪些
  • 怎么在主机上的建设网站做网站后台需要写代码吗
  • 网站建设发信息wordpress 科技类主题
  • 一站式进货平台网站建设为什么做网站编辑
  • 免费建站哪家好网站商城建设合同免费下载
  • 网站开发filter北京互联网
  • 德州市市政工程建设总公司网站设计公司的运营模式
  • 网站源码怎么弄境外注册网站
  • 肥城网站建设视频解析接口网站怎么做
  • 深圳做互联网教网站公司五百亿网站建设
  • 如何建自己网站周口网站建设费用
  • 延安网站建设哪家专业网站建设的大功效
  • 做网站交互demo工具服务器中安装wordpress
  • 2017年网站建设市场分析2345浏览器官网网址
  • 超大型网站建设怎么打广告吸引客户
  • 阳泉 网站建设合作国际网站设计
  • 东莞网站优化快速排名wordpress自适应设置宽度
  • wordpress的站点地址怎么设置青岛seo网站建设
  • wordpress 获取文章标签泰安企业网站seo
  • 网站可分为哪两种类型jsp网站建设项目实战 pdf
  • 科技类网站简介怎么做网站建设公司的工资
  • 东莞网站推广怎么做网站备案和备案的区别
  • 免费的舆情网站app开放平台设计方案
  • 昆明驿站网站建设程序做网站好还是app好
  • 提供网站推广公司电话室内设计好不好学
  • 小型网站网站建设需要做网页的素材网站