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

北京做网站便宜的公司哪家好建设网站管理规定

北京做网站便宜的公司哪家好,建设网站管理规定,花店网页设计模板,iis的默认网站没有自动启动引言 访问者模式#xff08;Visitor Pattern#xff09;是一种行为设计模式#xff0c;它允许你在不改变对象结构的前提下定义作用于这些对象的新操作。通过使用访问者模式#xff0c;可以将相关操作分离到访问者中#xff0c;从而提高系统的灵活性和可维护性。在金融业务…引言 访问者模式Visitor Pattern是一种行为设计模式它允许你在不改变对象结构的前提下定义作用于这些对象的新操作。通过使用访问者模式可以将相关操作分离到访问者中从而提高系统的灵活性和可维护性。在金融业务中访问者模式可以用于实现复杂的数据分析、报告生成等功能。本文将介绍访问者模式在金融业务中的使用并探讨其在Spring框架中的实现方式。 设计原理 访问者模式主要涉及以下几个角色 抽象访问者Visitor为每个具体元素类声明一个访问操作。具体访问者Concrete Visitor实现每个具体元素类的访问操作。抽象元素Element定义一个接受访问操作accept的接口。具体元素Concrete Element实现接受访问操作accept的方法该方法通常会调用访问者的对应方法。 类图 下图展示了访问者模式的类图 #mermaid-svg-GCcrMG5NPUqmtbmF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GCcrMG5NPUqmtbmF .error-icon{fill:#552222;}#mermaid-svg-GCcrMG5NPUqmtbmF .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-GCcrMG5NPUqmtbmF .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-GCcrMG5NPUqmtbmF .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-GCcrMG5NPUqmtbmF .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-GCcrMG5NPUqmtbmF .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-GCcrMG5NPUqmtbmF .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-GCcrMG5NPUqmtbmF .marker{fill:#333333;stroke:#333333;}#mermaid-svg-GCcrMG5NPUqmtbmF .marker.cross{stroke:#333333;}#mermaid-svg-GCcrMG5NPUqmtbmF svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-GCcrMG5NPUqmtbmF g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-GCcrMG5NPUqmtbmF g.classGroup text .title{font-weight:bolder;}#mermaid-svg-GCcrMG5NPUqmtbmF .nodeLabel,#mermaid-svg-GCcrMG5NPUqmtbmF .edgeLabel{color:#131300;}#mermaid-svg-GCcrMG5NPUqmtbmF .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-GCcrMG5NPUqmtbmF .label text{fill:#131300;}#mermaid-svg-GCcrMG5NPUqmtbmF .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-GCcrMG5NPUqmtbmF .classTitle{font-weight:bolder;}#mermaid-svg-GCcrMG5NPUqmtbmF .node rect,#mermaid-svg-GCcrMG5NPUqmtbmF .node circle,#mermaid-svg-GCcrMG5NPUqmtbmF .node ellipse,#mermaid-svg-GCcrMG5NPUqmtbmF .node polygon,#mermaid-svg-GCcrMG5NPUqmtbmF .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-GCcrMG5NPUqmtbmF .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-GCcrMG5NPUqmtbmF g.clickable{cursor:pointer;}#mermaid-svg-GCcrMG5NPUqmtbmF g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-GCcrMG5NPUqmtbmF g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-GCcrMG5NPUqmtbmF .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-GCcrMG5NPUqmtbmF .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-GCcrMG5NPUqmtbmF .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-GCcrMG5NPUqmtbmF .dashed-line{stroke-dasharray:3;}#mermaid-svg-GCcrMG5NPUqmtbmF #compositionStart,#mermaid-svg-GCcrMG5NPUqmtbmF .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-GCcrMG5NPUqmtbmF #compositionEnd,#mermaid-svg-GCcrMG5NPUqmtbmF .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-GCcrMG5NPUqmtbmF #dependencyStart,#mermaid-svg-GCcrMG5NPUqmtbmF .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-GCcrMG5NPUqmtbmF #dependencyStart,#mermaid-svg-GCcrMG5NPUqmtbmF .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-GCcrMG5NPUqmtbmF #extensionStart,#mermaid-svg-GCcrMG5NPUqmtbmF .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-GCcrMG5NPUqmtbmF #extensionEnd,#mermaid-svg-GCcrMG5NPUqmtbmF .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-GCcrMG5NPUqmtbmF #aggregationStart,#mermaid-svg-GCcrMG5NPUqmtbmF .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-GCcrMG5NPUqmtbmF #aggregationEnd,#mermaid-svg-GCcrMG5NPUqmtbmF .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-GCcrMG5NPUqmtbmF .edgeTerminals{font-size:11px;}#mermaid-svg-GCcrMG5NPUqmtbmF :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} accept accept Visitor visitElementA(element: ElementA) visitElementB(element: ElementB) ConcreteVisitor1 visitElementA(element: ElementA) visitElementB(element: ElementB) ConcreteVisitor2 visitElementA(element: ElementA) visitElementB(element: ElementB) Element accept(visitor: Visitor) ElementA accept(visitor: Visitor) operationA() ElementB accept(visitor: Visitor) operationB() 访问者模式在金融业务中的应用 1. 数据分析和报告生成 在金融业务中数据分析和报告生成是常见的需求。可以使用访问者模式将不同的分析和生成操作分离出来以便于扩展和维护。 // 抽象访问者类 public interface Visitor {void visitElementA(ElementA element);void visitElementB(ElementB element); }// 具体访问者类1 public class ConcreteVisitor1 implements Visitor {Overridepublic void visitElementA(ElementA element) {System.out.println(ConcreteVisitor1 visiting ElementA);element.operationA();}Overridepublic void visitElementB(ElementB element) {System.out.println(ConcreteVisitor1 visiting ElementB);element.operationB();} }// 具体访问者类2 public class ConcreteVisitor2 implements Visitor {Overridepublic void visitElementA(ElementA element) {System.out.println(ConcreteVisitor2 visiting ElementA);element.operationA();}Overridepublic void visitElementB(ElementB element) {System.out.println(ConcreteVisitor2 visiting ElementB);element.operationB();} }// 抽象元素类 public interface Element {void accept(Visitor visitor); }// 具体元素类A public class ElementA implements Element {Overridepublic void accept(Visitor visitor) {visitor.visitElementA(this);}public void operationA() {System.out.println(ElementA operation);} }// 具体元素类B public class ElementB implements Element {Overridepublic void accept(Visitor visitor) {visitor.visitElementB(this);}public void operationB() {System.out.println(ElementB operation);} }// 客户端代码 public class VisitorPatternDemo {public static void main(String[] args) {ListElement elements Arrays.asList(new ElementA(), new ElementB());Visitor visitor1 new ConcreteVisitor1();Visitor visitor2 new ConcreteVisitor2();for (Element element : elements) {element.accept(visitor1);}for (Element element : elements) {element.accept(visitor2);}} }访问者模式在Spring框架中的应用 Spring Data JPA Spring Data JPA中使用了一种类似访问者模式的设计来处理不同的数据库操作和查询。通过使用Specification接口可以将复杂的查询条件封装成独立的规格对象并在查询时进行组合。 1. Spring Data JPA 配置示例 !-- Spring Data JPA 配置 -- bean identityManagerFactory classorg.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean!-- 配置实体管理工厂 -- /beanbean idtransactionManager classorg.springframework.orm.jpa.JpaTransactionManager!-- 配置事务管理器 -- /beanjpa:repositories base-packagecom.example.repository/2. Spring Data JPA 规格示例 public interface CustomerRepository extends JpaRepositoryCustomer, Long, JpaSpecificationExecutorCustomer { }public class CustomerSpecs {public static SpecificationCustomer hasName(String name) {return (root, query, builder) - builder.equal(root.get(name), name);}public static SpecificationCustomer hasAge(int age) {return (root, query, builder) - builder.equal(root.get(age), age);} }// 客户端代码 public class SpringDataJPADemo {Autowiredprivate CustomerRepository customerRepository;public void demo() {ListCustomer customers customerRepository.findAll(Specification.where(CustomerSpecs.hasName(John)).and(CustomerSpecs.hasAge(30)));customers.forEach(System.out::println);} }总结 访问者模式在金融业务中具有广泛的应用可以灵活地实现数据分析、报告生成等功能。在Spring框架中访问者模式通过Spring Data JPA等机制得到了广泛应用使得系统更具灵活性和可扩展性。 参考文献 Refactoring Guru - Visitor PatternSpring Data JPA Documentation 互动与反馈 如果你觉得这篇文章对你有帮助请点赞、收藏并关注我以便获得更多优质内容如有疑问或建议欢迎在评论区留言我会及时回复。感谢阅读 希望这对你有帮助如果你有其他设计模式需要了解请告诉我。
http://www.hkea.cn/news/14487922/

相关文章:

  • 客户都不愿意做网站学校网站模板wordpress
  • 网站备案必须做前置审批吗畅言wordpress插件
  • 九江市建设工程门户网站你好多莉 wordpress
  • 哪个网站是用php写的网站模板
  • 网站视频下载方法上海建筑业网证书查询
  • 上海做宴会的网站重庆建设工程安全信息网查询
  • 广州seo优化推广信息流广告优化师
  • 筹划电子商务网站建设网站开发按几年摊销
  • 体验营销策划方案seo培训优化
  • ip网站查询服务器重庆网站开发培训机构
  • icp备案查看网站内容吗wordpress可以做相册吗
  • 九九建站-网站建设 网站推广 seo优化 seo培训漫画网站开发源码
  • 加强网站建设工作自媒体网络营销是什么
  • 建立网站有哪些步骤wordpress 后台添加文章 没编辑功能
  • 虚拟主机怎么弄网站新品网络推广
  • 百度云网站建设教程视频教程手机做wordpress
  • 北京网站备案号查询网上家教网站开发
  • 浙江杰立建设集团网站网站开发应该注意什么
  • 广东建设继续教育网站泰安网站建设制作电话号码
  • 评价一个网站的优缺点html静态网站下载
  • 蛋糕网站案例微信运营管理软件
  • 手机端网站建设教程wordpress 目录 伪静态
  • 个人网站建设案例课堂百度做网站骗人到哪里去投诉
  • 免费网站模板素材微信朋友圈营销方案
  • 杭州北京网站建设公司哪家好ui网页设计师
  • 电子商务网站建设代码百度如何精准搜索
  • 中国在数码网站注册域名好>新手编程软件哪个好用
  • 做网站要考虑哪些因素微网站怎么注册
  • 行业自助建站wordpress右侧悬浮搜索菜单
  • 美团网站怎么做网页链接