5.9 策略模式(Strategy Pattern) 行为设计模式
它定义了一系列算法,并将每一个算法封装起来,使它们可以互换。策略模式使得算法可以独立于使用它的客户端而变化。
应用场景:
电商系统中的支付方式:不同用户可以选择不同的支付方式(如信用卡支付、支付宝支付、微信支付等),每种支付方式可以作为一个策略类。
5.10 模版方法模式(Template Method Pattern)行为型模式
它在一个抽象类中定义了一个算法的骨架,将一些具体的步骤延迟到子类中实现。这样,子类可以在不改变算法结构的情况下重新定义算法的某些特定步骤。
应用场景:
算法框架固定,但具体实现可变:
当算法的整体结构固定,但某些步骤的具体实现可能因情况而异时,可以使用模板方法模式。
游戏角色创建:
在游戏中创建不同角色(如战士、法师、盗贼等)时,可能需要执行不同的初始化步骤(如设置属性、装备武器、学习技能等)。可以使用模板方法模式来定义角色创建的算法框架,并让不同类型的角色实现具体的初始化步骤。
5.11 访问者模式(Visitor Pattern)对象行为型模式
访问者模式(Visitor Pattern)是一种将数据结构与数据操作分离的设计模式,它属于行为型设计模式。该模式的核心思想是将作用于某种数据结构中的各元素的操作封装起来,使得这些操作可以在不改变数据结构的前提下定义和实现。
应用场景:
电商平台商品操作:在电商平台中,需要对商品进行多种操作,如计算总价、库存盘点、生成报表等。这些操作可能会随着业务的发展而增加,但商品本身不应对这些操作负责。访问者模式允许将数据结构(商品)与在其上执行的操作(访问者)分离,使得增加新的操作变得容易,而不需要修改现有的数据结构。
它定义了一系列算法,并将每一个算法封装起来,使它们可以互换。策略模式使得算法可以独立于使用它的客户端而变化。
应用场景:
电商系统中的支付方式:不同用户可以选择不同的支付方式(如信用卡支付、支付宝支付、微信支付等),每种支付方式可以作为一个策略类。
5.10 模版方法模式(Template Method Pattern)行为型模式
它在一个抽象类中定义了一个算法的骨架,将一些具体的步骤延迟到子类中实现。这样,子类可以在不改变算法结构的情况下重新定义算法的某些特定步骤。
应用场景:
算法框架固定,但具体实现可变:
当算法的整体结构固定,但某些步骤的具体实现可能因情况而异时,可以使用模板方法模式。
游戏角色创建:
在游戏中创建不同角色(如战士、法师、盗贼等)时,可能需要执行不同的初始化步骤(如设置属性、装备武器、学习技能等)。可以使用模板方法模式来定义角色创建的算法框架,并让不同类型的角色实现具体的初始化步骤。
5.11 访问者模式(Visitor Pattern)对象行为型模式
访问者模式(Visitor Pattern)是一种将数据结构与数据操作分离的设计模式,它属于行为型设计模式。该模式的核心思想是将作用于某种数据结构中的各元素的操作封装起来,使得这些操作可以在不改变数据结构的前提下定义和实现。
应用场景:
电商平台商品操作:在电商平台中,需要对商品进行多种操作,如计算总价、库存盘点、生成报表等。这些操作可能会随着业务的发展而增加,但商品本身不应对这些操作负责。访问者模式允许将数据结构(商品)与在其上执行的操作(访问者)分离,使得增加新的操作变得容易,而不需要修改现有的数据结构。