网站的网络推广策略有哪些,wordpress同步到,做网站投注代理犯罪吗,大型自助建站平台文章目录 一、介绍二、模式结构三、优缺点1、优点2、缺点 四、应用场景 一、介绍
Visitor 模式#xff08;访问者模式#xff09;是一种行为设计模式#xff0c;它允许在不修改对象结构的前提下#xff0c;增加作用于一组对象上新的操作。就增加新的操作而言#xff0c;V… 文章目录 一、介绍二、模式结构三、优缺点1、优点2、缺点 四、应用场景 一、介绍
Visitor 模式访问者模式是一种行为设计模式它允许在不修改对象结构的前提下增加作用于一组对象上新的操作。就增加新的操作而言Visitor 模式把新的操作作为访问者Visitor加到对象中而不是修改那些类的代码。这样新的操作就可以被应用到所有对象上而无需修改这些对象的类。
二、模式结构
Visitor 模式主要包含以下几个角色
Visitor访问者接口声明了一个或多个访问操作形成所有的具体元素角色必须实现的接口。ConcreteVisitor具体访问者实现 Visitor 接口也就是实现一个具体的访问操作。Element元素声明了一个接受访问者对象的方法即 accept 方法该方法通常是一个空实现或只声明了接口。ConcreteElement具体元素实现了 Element 接口存储或定义了一个相关的数据操作并可以定义一个或多个 accept 操作以便接受访问者的访问。ObjectStructure对象结构是一个元素的集合且能枚举它的元素可以提供一个高层的接口以允许访问者访问它的元素。
三、优缺点
1、优点
增加新的操作很容易只需要增加一个新的访问者类即可。将有关的行为集中到一个访问者对象中而不是分散到多个元素类中。可以绕过通常的继承机制来访问和修改一个类的内部状态。使得增加新的元素类变得容易因为接受操作被集中在一个访问者接口中所以增加新的元素类不需要修改访问者类的代码。
2、缺点
增加新的元素类很困难每增加一个新的元素类都需要在所有的具体访问者类中增加相应的具体操作实现这违反了“开闭原则”。破坏封装访问者可以访问并修改元素的状态这可能会违反封装原则。
四、应用场景
当一个系统需要对一个对象结构中的对象进行很多不同的操作这些操作彼此不相关同时又不希望这些操作的方法定义在元素的类的里面时。当需要对一个对象结构中的对象进行与对象本身无关的操作时。当这些操作以后会动态地增加或减少时。