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

网站技术有哪些搜索热门关键词

网站技术有哪些,搜索热门关键词,wordpress百度小程序,株洲企业网站建设工作室一、概念 访问者模式,表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的前提下定义作用于这些元素的操作。 二、类图及基本代码 //抽象访问者 public abstract class Visitor {public abstract void VisitorConcreteElementA(ConcreteElementA concrete…

一、概念

访问者模式,表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的前提下定义作用于这些元素的操作。

二、类图及基本代码

这里写图片描述

//抽象访问者
public abstract class Visitor {public abstract void VisitorConcreteElementA(ConcreteElementA concreteElementA);public abstract void VisitorConcreteElementB(ConcreteElementB concreteElementB);}
//具体访问者1
public class ConcreteVisitor1 extends Visitor{@Overridepublic void VisitorConcreteElementA(ConcreteElementA concreteElementA) {System.out.println(concreteElementA.getClass().getSimpleName()+"被"+this.getClass().getSimpleName()+"访问");}@Overridepublic void VisitorConcreteElementB(ConcreteElementB concreteElementB) {System.out.println(concreteElementB.getClass().getSimpleName()+"被"+this.getClass().getSimpleName()+"访问");}}
//具体访问者2
public class ConcreteVisitor2 extends Visitor{@Overridepublic void VisitorConcreteElementA(ConcreteElementA concreteElementA) {System.out.println(concreteElementA.getClass().getSimpleName()+"被"+this.getClass().getSimpleName()+"访问");}@Overridepublic void VisitorConcreteElementB(ConcreteElementB concreteElementB) {System.out.println(concreteElementB.getClass().getSimpleName()+"被"+this.getClass().getSimpleName()+"访问");}}
//抽象元素
public abstract class Element {public abstract void Accept(Visitor visitor);}
//具体元素A
public class ConcreteElementA extends Element{@Overridepublic void Accept(Visitor visitor) {visitor.VisitorConcreteElementA(this);}}
//具体元素B
public class ConcreteElementB extends Element {@Overridepublic void Accept(Visitor visitor) {visitor.VisitorConcreteElementB(this);}}
//对象结构
public class ObjectStructure {private List<Element> list = new ArrayList<>();public void Attach(Element element) {list.add(element);}public void Detach(Element element) {list.remove(element);}public void Accept(Visitor visitor) {for (Element element : list) {element.Accept(visitor);}}}
//客户端
public class Client {public static void main(String[] args) {ObjectStructure objectStructure=new ObjectStructure();objectStructure.Attach(new ConcreteElementA());objectStructure.Attach(new ConcreteElementB());ConcreteVisitor1 v1=new ConcreteVisitor1();ConcreteVisitor2 v2=new ConcreteVisitor2();objectStructure.Accept(v1);objectStructure.Accept(v2);}}

三、实例之男女区别

//抽象元素
public abstract class Person {public abstract void Accept(Action action);}
//男
public class Man extends Person{@Overridepublic void Accept(Action action) {action.GetManConclusion(this);}}
//女
public class Woman extends Person{@Overridepublic void Accept(Action action) {action.GetWomanConclusion(this);}}
//抽象状态类
public abstract class Action {public abstract void GetManConclusion(Person man);public abstract void GetWomanConclusion(Person woman);}
//恋爱状态
public class Amativeness extends Action {@Overridepublic void GetManConclusion(Person man) {System.out.println("男人恋爱时");}@Overridepublic void GetWomanConclusion(Person woman) {System.out.println("女人恋爱时");}}
//失败状态
public class Failing extends Action{@Overridepublic void GetManConclusion(Person man) {System.out.println("男人失败时");}@Overridepublic void GetWomanConclusion(Person woman) {System.out.println("女人失败时");}}
//结婚状态
public class Marriage extends Action{@Overridepublic void GetManConclusion(Person man) {System.out.println("男人结婚时,,,,");}@Overridepublic void GetWomanConclusion(Person woman) {System.out.println("女人结婚时,,,,");}}
//对象结构,用于访问男,女元素
public class ObjectStructure {private List<Person> list = new ArrayList<>();public void Attach(Person person) {list.add(person);}public void Detach(Person person) {list.remove(person);}public void Display(Action action) {for (Person person : list) {person.Accept(action);}}}

public class Client {public static void main(String[] args) {ObjectStructure objectStructure=new ObjectStructure();objectStructure.Attach(new Man());objectStructure.Attach(new Woman());Success success=new Success();//看男人和女人在成功时的状态objectStructure.Display(success);//新增一个结婚状态Marriage marriage=new Marriage();objectStructure.Display(marriage);}}

四、总结

1、使用时机。
访问者模式适用于数据结构稳定,又有易于变化的算法。如男女区别案例中,人只有男,女之分,而男,女在不同的状态下具有不同的表现,这时使用访问者模式。
2、优点与缺点。
优点:易于增加新的操作,因为增加一个新操作就是增加一个新的访问者类。如男女区别案例中,新增一个结婚状态,只需新增一个结婚状态类即可。
缺点:增加新的数据结构比较困难。如果男女区别案例中,如果又有一个新的性别,那么就要修改很多类才能完成想要的功能,较为复杂。

Age wrinkles the body. Quitting wrinkles the soul.

http://www.lbrq.cn/news/2582515.html

相关文章:

  • 最好的网页设计网站宁波seo在线优化
  • 莱芜有需要制作网站的公司吗免费b站推广网站2022
  • 新加坡的网站域名上海关键词自动排名
  • 河南春辉建设集团官方网站手机百度seo怎么优化
  • 网站设计O2O平台佛山总代理东莞网络推广策略
  • 淮安做网站找哪家公司关键词快速上首页排名
  • 太原网站建设谁家好网络销售怎么样
  • 直播网站开发核心技术seo网络优化专员
  • 玩具网站建设策划书神马推广
  • 山东网站建设好不好友情链接的形式
  • 江西个人网站备案做论坛沈阳cms模板建站
  • 事业单位网站开发工作规程高级seo培训
  • 网站建设需要些什么软件seo推广排名平台有哪些
  • wordpress分页404seo免费优化公司推荐
  • 浦东新区做网站公司关键词规划师
  • 驻马店做网站网页设计图片
  • 网络专业的网站建设武汉seo推广
  • 做网站的语言叫什么厦门百度代理
  • 创建网站的三种方法海外网络专线
  • wordpress多个网站博客seo怎么做
  • 黑苹果做网站开发网络营销师证书查询
  • 网站建设工资待遇贵港seo
  • 网站建设 邦如何进行seo搜索引擎优化
  • 什么叫企业网站近期热点新闻事件
  • 网站建设中的服务器搭建方式杭州数据推广
  • wordpress 批量发布微博关键词排名优化
  • 自己做网站好还是购买网站好网站设计案例
  • 长沙官网网站建设网推平台有哪些
  • 淘宝提货网站怎么做的百度非企推广开户
  • 灰色网站欣赏深圳网站快速排名优化
  • 6.1、Redis多级缓存原理和优化、Redis部分参数优化调整
  • wordpress登陆前登陆后显示不同的顶部菜单
  • 本地环境vue与springboot联调
  • (一)全栈(react配置/https支持/useState多组件传递/表单提交/React Query/axois封装/Router)
  • React中的Hooks
  • 【C++】第二十一节—一文详解 | 红黑树实现(规则+效率+结构+插入+查找+验证)