继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

访问者模式

火影劫
关注TA
已关注
手记 5
粉丝 7
获赞 94

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的子类的难以扩展。
打开App,阅读手记
14人推荐
发表评论
随时随地看视频慕课网APP

热门评论

udhddhdjushdhdhdjjdjdj

设计模式之禅

你看的什么书

查看全部评论