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

工艺品网站模板宁波seo整站优化

工艺品网站模板,宁波seo整站优化,南京浦口住房与城乡建设局网站,做公司网站需要的材料有哪些文章目录 一、访问者模式#xff08;Visitor Pattern#xff09;二、文字描述三、例子例子一#xff1a;菜鸟教程对象定义访问者定义使用总结 例子二#xff1a;Spring的BeanDefinitionVisitor 一、访问者模式#xff08;Visitor Pattern#xff09; 行为型模式。 目的Visitor Pattern二、文字描述三、例子例子一菜鸟教程对象定义访问者定义使用总结 例子二Spring的BeanDefinitionVisitor 一、访问者模式Visitor Pattern 行为型模式。 目的将数据结构 与 数据操作分离。 二、文字描述 将对象属性的操作交由Visitor对象进行操作。 三、例子 先说明一下。 个人认为访问者模式不一定非得按照菜鸟教程的例子来写就像单例模式有好几种实现。 我们只需要将访问者的概念实现即可。 例子一菜鸟教程 对象定义 public interface ComputerPart {public void accept(ComputerPartVisitor computerPartVisitor); }public class Monitor implements ComputerPart {Overridepublic void accept(ComputerPartVisitor computerPartVisitor) {computerPartVisitor.visit(this);} }public class Computer implements ComputerPart {private String data;Overridepublic void accept(ComputerPartVisitor computerPartVisitor) {computerPartVisitor.visit(this);} }访问者定义 public interface ComputerPartVisitor {public void visit(Computer computer);public void visit(Monitor monitor); }public class ComputerPartDisplayVisitor implements ComputerPartVisitor {Overridepublic void visit(Computer computer) {System.out.println(Displaying Computer.);computer.data 修改数据;}Overridepublic void visit(Monitor monitor) {System.out.println(Displaying Monitor.);} }使用 ComputerPart computer new Computer(); computer.accept(new ComputerPartDisplayVisitor());总结 这个例子是菜鸟上的例子已经被我简化了一下。 但是对于刚学这个模式的人来说我感觉还是太绕了。 例子二Spring的BeanDefinitionVisitor 这个Spring里面的一个类个人认为这个比较好理解。 下面是BeanDefinitionVisitor的代码。 为了方便理解代码比较长的方法已经被我删了完整代码可以自己去spring看。 public class BeanDefinitionVisitor {Nullableprivate StringValueResolver valueResolver;public BeanDefinitionVisitor(StringValueResolver valueResolver) {Assert.notNull(valueResolver, StringValueResolver must not be null);this.valueResolver valueResolver;}protected BeanDefinitionVisitor() {}protected void visitParentName(BeanDefinition beanDefinition) {String parentName beanDefinition.getParentName();if (parentName ! null) {String resolvedName this.resolveStringValue(parentName);if (!parentName.equals(resolvedName)) {beanDefinition.setParentName(resolvedName);}}}protected void visitBeanClassName(BeanDefinition beanDefinition) {String beanClassName beanDefinition.getBeanClassName();if (beanClassName ! null) {String resolvedName this.resolveStringValue(beanClassName);if (!beanClassName.equals(resolvedName)) {beanDefinition.setBeanClassName(resolvedName);}}}protected void visitFactoryBeanName(BeanDefinition beanDefinition) {String factoryBeanName beanDefinition.getFactoryBeanName();if (factoryBeanName ! null) {String resolvedName this.resolveStringValue(factoryBeanName);if (!factoryBeanName.equals(resolvedName)) {beanDefinition.setFactoryBeanName(resolvedName);}}}protected void visitFactoryMethodName(BeanDefinition beanDefinition) {String factoryMethodName beanDefinition.getFactoryMethodName();if (factoryMethodName ! null) {String resolvedName this.resolveStringValue(factoryMethodName);if (!factoryMethodName.equals(resolvedName)) {beanDefinition.setFactoryMethodName(resolvedName);}}}protected void visitScope(BeanDefinition beanDefinition) {String scope beanDefinition.getScope();if (scope ! null) {String resolvedScope this.resolveStringValue(scope);if (!scope.equals(resolvedScope)) {beanDefinition.setScope(resolvedScope);}}}protected void visitPropertyValues(MutablePropertyValues pvs) {PropertyValue[] pvArray pvs.getPropertyValues();PropertyValue[] var3 pvArray;int var4 pvArray.length;for(int var5 0; var5 var4; var5) {PropertyValue pv var3[var5];Object newVal this.resolveValue(pv.getValue());if (!ObjectUtils.nullSafeEquals(newVal, pv.getValue())) {pvs.add(pv.getName(), newVal);}}}protected void visitArray(Object[] arrayVal) {for(int i 0; i arrayVal.length; i) {Object elem arrayVal[i];Object newVal this.resolveValue(elem);if (!ObjectUtils.nullSafeEquals(newVal, elem)) {arrayVal[i] newVal;}}}protected void visitList(List listVal) {for(int i 0; i listVal.size(); i) {Object elem listVal.get(i);Object newVal this.resolveValue(elem);if (!ObjectUtils.nullSafeEquals(newVal, elem)) {listVal.set(i, newVal);}}}Nullableprotected String resolveStringValue(String strVal) {if (this.valueResolver null) {throw new IllegalStateException(No StringValueResolver specified - pass a resolver object into the constructor or override the resolveStringValue method);} else {String resolvedValue this.valueResolver.resolveStringValue(strVal);return strVal.equals(resolvedValue) ? strVal : resolvedValue;}} } 这里就是用访问者的方法去设置BeanDefinition的属性个人认为这个例子比较好理解。 简单粗暴就是将数据结构和数据操作分离BeanDefinition将设置属性的操作交给了BeanDefinitionVisitor 操作。
http://www.zqtcl.cn/news/911879/

相关文章:

  • 网页设计 教程网站找权重高的网站方法
  • 网站建设本地还是外地重庆seo排名方法
  • 那个网站做网编好昨晚兰州发生了什么事
  • 温州建设局网站首页哪里可以学做资料员的网站
  • 网站怎样在360做优化wordpress文章图片在线裁剪
  • 彭州建设网站建设网站哪间公司比较好
  • qq空间网站根目录慧聪网首页
  • 制作小程序和网站的公司杭州品牌设计公司
  • 显示网站翻页代码wordpress 金融 模板下载
  • 用双语网站做seo会不会phpmysql网站
  • 长沙专业网站建设公司优惠券怎么做自己的网站
  • 做网站如何宣传怎么弄公众号
  • seo网站策划书网站建设资金投入
  • 做网站东莞东莞建网站wordpress 多文件上传
  • 公司注册流程聊城网站优化案例
  • 化妆品网站建设实施方案杭州seo代理公司
  • 网站小图片素材高质量外链
  • 福州个人建站模板有没有一些有试卷做的网站
  • 教你如何建设网站阿里去旺道seo优化
  • 想做一个个人网站怎么做网站组成部分
  • 旅游门户网站模板下载全国最新产品代理商
  • 老河口网站设计中企动力科技做什么的
  • 如何建立网站管理系统甘孜州住房和城乡规划建设局网站
  • 阿里网站建设新闻门户网站什么意思
  • 桂林微信网站wordpress 连接信息
  • 电商网站开发简历跨境电商怎么搞
  • php小型网站开发百度知道小程序
  • 风铃网站具体是做那方面的contact form7 v2.1.2 wordpress
  • 临沂网站建设举措网站数据不变重新安装wordpress
  • 外贸网站建设双语网站建设红色大气网络公司企业网站源码_适合广告设计