400-123-4657
联系我们/CONTACT US
地址:吉林省延边朝鲜族自治州和龙市央远大楼5545号
电话:400-123-4657
传真:+86-123-4567
第四系列您当前的位置: 首页 > 产品中心 > 第四系列

大牛分享的几种设计模式及知识要点(完)“开云手机版app下载”

更新时间:2023-10-01

本文摘要:一、会见者模式(Visitor Pattern )界说:Represent an operation to be performed on the elements of an objectstructure. Visitor lets you define a new operation without changing the classes ofthe elements on which it operates. (封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下界说作用于这些元素的新的操作。

一、会见者模式(Visitor Pattern )界说:Represent an operation to be performed on the elements of an objectstructure. Visitor lets you define a new operation without changing the classes ofthe elements on which it operates. (封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下界说作用于这些元素的新的操作。)● Visitor——抽象会见者抽象类或者接口,声明会见者可以会见哪些元素,详细到法式中就是 visit 方法的参数界说哪些工具是可以被会见的。● ConcreteVisitor——详细会见者它影响会见者会见到一个类后该怎么干,要做什么事情。

● Element——抽象元素接口或者抽象类,声明接受哪一类会见者会见,法式上是通过 accept 方法中的参数来界说的。● ConcreteElement——详细元素实现 accept 方法,通常是 visitor.visit(this),基本上都形成了一种模式了。● ObjectStruture——结构工具元素发生者,一般容纳在多个差别类、差别接口的容器,如 List、Set、Map 等,在项目中,一般很少抽象出这个角色。

使用场景:● 一个工具结构包罗许多类工具,它们有差别的接口,而你想对这些工具实施一些依赖于其详细类的操作,也就说是用迭代器模式已经不能胜任的情景。● 需要对一个工具结构中的工具举行许多差别而且不相关的操作,而你想制止让这些操作“污染”这些工具的类。二、状态模式(庞大)界说:Allow an object to alter its behavior when its internal state changes.Theobject will appear to change its class.(当一个工具内在状态改变时允许其改变行为,这个工具看起来像改变了其类。)● State——抽象状态角色接口或抽象类,卖力工具状态界说,而且封装情况角色以实现状态切换。

● ConcreteState——详细状态角色每一个详细状态必须完成两个职责:本状态的行为治理以及趋向状态处置惩罚,通俗地说,就是本状态下要做的事情,以及本状态如何过渡到其他状态。● Context——情况角色界说客户端需要的接口,而且卖力详细状态的切换。

使用场景:● 行为随状态改变而改变的场景这也是状态模式的基础出发点,例如权限设计,人员的状态差别纵然执行相同的行为效果也会差别,在这种情况下需要思量使用状态模式。● 条件、分支判断语句的替代者注意:状态模式适用于当某个工具在它的状态发生改变时,它的行为也随着发生比力大的变化,也就是说在行为受状态约束的情况下可以使用状态模式,而且使用时工具的状态最好不要凌驾 5 个。三、解释器模式(Interpreter Pattern )(少用)界说:Given a language, define a representation for its grammar along with aninterpreter that uses the representation to interpret sentences in the language.(给定一门语言,界说它的文法的一种表现,并界说一个解释器,该解释器使用该表现来解释语言中的句子。)● AbstractExpression——抽象解释器详细的解释任务由各个实现类完成,详细的解释器划分由 TerminalExpression 和Non-terminalExpression 完成。

● TerminalExpression——终结符表达式实现与文法中的元素相关联的解释操作,通常一个解释器模式中只有一个终结符表达式,但有多个实例,对应差别的终结符。详细到我们例子就是 VarExpression类,表达式中的每个终结符都在栈中发生了一个 VarExpression 工具。● NonterminalExpression——非终结符表达式文法中的每条规则对应于一个非终结表达式,详细到我们的例子就是加减法例则划分对应到 AddExpression 和 SubExpression 两个类。非终结符表达式凭据逻辑的庞大水平而增加,原则上每个文法例则都对应一个非终结符表达式。

● Context——情况角色详细到我们的例子中是接纳 HashMap 取代。使用场景:● 重复发生的问题可以使用解释器模式● 一个简朴语法需要解释的场景注意:只管不要在重要的模块中使用解释器模式,否则维护会是一个很大的问题。

在项目中可以使用 shell、JRuby、Groovy 等剧本语言来取代解释器模式,弥补 Java 编译型语言的不足。四、享元模式(Flyweight Pattern )界说:Use sharing to support large numbers of fine-grained objects efficiently.(使用共享工具可有效地支持大量的细粒度的工具。)工具的信息分为两个部门:内部状态(intrinsic)与外部状态(extrinsic)。

● 内部状态内部状态是工具可共享出来的信息,存储在享元工具内部而且不会随情况改变而改变。● 外部状。


本文关键词:开云手机版app下载

本文来源:开云手机版app下载-www.jxxfjz.com

【返回列表页】

关于我们开云手机版app下载

开云手机版app下载核心价值观:诚信、创新、服务企业核心: 诚信 企业精神: 团结拼搏、开拓求实、满足用户、科技进步。 客户:为客户提供高质量和最大价值的专业化产品和服务,以真诚和实力赢得客户的理解、尊重和支持。市场:为客户降低采购成本和风险,为客户投资提供切实保障。 发展:追求永续发展的目标,并把它建立在客户满意的基础上。 关于“为合作伙伴创造价值”公司认为客户、供...

联系我们

电话:400-123-4657

邮箱:admin@youweb.com

地址:吉林省延边朝鲜族自治州和龙市央远大楼5545号

传真:+86-123-4567

版权所有:Copyright © 2008-2023 www.jxxfjz.com. 开云手机版app下载科技 版权所有 ICP备案编号:ICP备88124474号-2 TOP