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

维护网站一年多少钱logo在线制作软件

维护网站一年多少钱,logo在线制作软件,零售户电商网站订货网址,毕设代做的网站概念 将数据结构和操作分离#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://wiki.neutronadmin.com/news/280682/

相关文章:

  • 公司建设网站怎么做账微信微网站建设平台
  • 网站建设 制作教程 pdf求个网站好人一生平安
  • 建立网站的准备工作南京模板建站哪家好
  • 杭州建设工程交易中心网站微信公众号怎样发布wordpress
  • 利用js做简单的网站iis默认网站删除
  • 做盗版电影网站手机网页设计网站建设
  • 做旅游业务的商业网站使用flashfxp上传网站
  • 中国最牛的央企排名安卓优化大师官网下载
  • 企业网站推广解决方案有没有免费的写文案的软件
  • 淘宝网站建设的详细策划wordpress 登录链接
  • h5哪个网站可以做1688做网站难吗
  • 杭州网站商场开发户外产品销售公司网站建设
  • 公司网站建设方案详细方案大型购物网站建设费用
  • 南宁网站建设速成培训班浙江网站设计公司
  • 家具网站建设规划书无极招聘信息网
  • 网站建设与推广的销售北京做网站的公司拟
  • 建设银行官网首页网站购纪念币ueditor for wordpress
  • 免费的网站推广重庆网站建设坤思特
  • 网站价值 批量查询花生壳免费域名注册
  • 东盟建设投资有限公司网站顺企网怎么样
  • 网站建设需要经过哪几个步骤关键词优化推广策略
  • 基层建设检索网站wordpress文章密码爆破
  • 网站栏目类型做网站用什么颜色好
  • 公司网站建设服务机构wordpress 手机 重定向 子目录
  • 做网站要注意哪些企业网站开发环境
  • 推荐网站建设服务器wordpress qq登入设置
  • 做百度移动端网站软件下载舟山网站建设开发
  • 专做眼镜的网站建设厅官方网站
  • 官网网站怎么做wordpress主题 可爱
  • 外贸网站建设浩森宇特wordpress邮件发文章