在项目中使用fastreport_策略模式在项目中的使用

策略模式实际还是比较简单的,我们在日常开发过程中,有意无意的已经使用到了。

何为策略模式:

我的理解:简单点儿,就是同一种行为有多种实现,具体采用哪一种是动态决定的。举例: 支付行为,实现了支付宝支付,微信支付,信用卡支付,具体使用哪一种,是有用户自己动态决定。

项目中的一段代码贴出来,在之前的“项目中的工厂模式使用”那篇文章已经贴过。

public 

背景是: 用户client 端发送指令给服务端,服务端接受指令,执行对应的动作。

有一个command 接口,接口中定义了2个方法,execute和 setParamters。

两个指令实现类, GetUserCommand 实现 对 “getUser" 的指令。AddUserCommand 实现 对“addUser“的指令。

public 

CommandHandle 负责具体执行动作,它对到底执行哪个是不知道的,实际也不需要知道,上层给它什么Command对象,就执行哪一个。这里省略掉了 command 对象的创建过程,实际是使用了工厂方法模式创建的, 可以参考

https://zhuanlan.zhihu.com/p/161378823​zhuanlan.zhihu.com
35d62d5b65f6e3a0ad43047e84100610.png

策略模式特点:

1。行为对象接口 (Command)

2。行为接口具体实现类 (AddUserCommand, GetUserCommand)

3。 执行类 (CommandHandle),入参为行为对象

优势:

解耦,面向接口编程,职责划分明确,底层的扩展和变动不影响上层的代码结构。

扩展性, 对于一类行为,只需重新创建新的实现类作扩展, 符合开闭原则思想。

实例化行为接口具体实现类的时候(即 create AddUserCommand,GetUserCommand... ),一般都会用到工厂方法模式,所以这两种模式是密不可分的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值