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();
可以在这里添加新的操作
}
}
访问者模式的优点:
- 符合单一职责原则
说白了就是Element的每个子类只对数据的加载,而Visitor 类则负责展示数据
2.优秀的扩展性
如果要添加领一种数据展示样式只要Visitor类添加一个方法就可以了,而不干扰到Element类。
访问者模式的缺点:
1.违背了依赖倒置原则,访问者依赖的是具体元素而不是接口或抽象元素,对Element的子类的难以扩展。
热门评论
udhddhdjushdhdhdjjdjdj
设计模式之禅
你看的什么书