栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

访问者模式

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

访问者模式

23种模式是我考初级程序员时知道并学习的。我也是个小白,然后听说设计模式之禅是很好读懂得书适合小白。所以我主要从这里学得。


访问者模式是一个很简单的模式,可能是书的问题。它让我也感到简单。其定义如下:封装一些作用于某中数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。
在我看来,就是定义一个类A,这个类可以是个接口 ,然后你另外定义一个类或接口V,(一般是接口,因为我们java是面向对象的编程或者说是面向接口编程)。,然后里面包含了一些数据的操作和运算。类A和类B是组合关系吧,是一对朋友类。所以类A里必有一个函数接受类B对象然后调用类B的函数,类B被调用的函数是类A对象作为参数。然后就可以在类B里计算类A中的数据和对数据的操作。

输入代码`
public class Element
{
public void accpet (Visitor v)
{
v.visit(Element E);
}
doSomething()
{
}
}
public class Visitor
{
public void visit(Element e)
{
原来类A对数据的操作
e.doSomething();
可以在这里添加新的操作
}
}

访问者模式的优点:

  1. 符合单一职责原则
    说白了就是Element的每个子类只对数据的加载,而Visitor 类则负责展示数据
    2.优秀的扩展性
    如果要添加领一种数据展示样式只要Visitor类添加一个方法就可以了,而不干扰到Element类。
    访问者模式的缺点:
    1.违背了依赖倒置原则,访问者依赖的是具体元素而不是接口或抽象元素,对Element的子类的难以扩展。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/233100.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号