我今天读到了关于SOLID's Open/Closed Principle的文章,我记得的第一个例子是安卓支持库中的ViewDragHelper类。
下面是这门课的详细内容:
// allowing a user to drag and reposition views
public class ViewDragHelper {
private final Callback mCallback;
public static ViewDragHelper create(..., Callback cb)
public abstract static class
在下面的代码中,基本上有三个主要类
实现操作接口的1个类
从上下文类扩展的2个类
演示策略模式的三个主要类
因此,我的问题是,这是如何在代码中应用策略模式的?
操作接口
public interface Operation {
public float run(float a,float b);
}
添加类
public class Add implements Operation{
@Override
public float run(float a, float b) {
return a+b;
}
}
乘类
pu
我有一个关于策略模式的问题。通常,战略模式如下所示:
class TaxCalculatorContext
{
private $strategy;
public function setStrategy(TaxCalculatorStrategyInterface $strategy)
{
$this->strategy = $strategy;
}
public function execute($amount)
{
return $this->strategy->calculate($a
Strategy pattern分离它所使用的上下文代码和策略(或算法或策略)。与Template Pattern相比,它具有一个优势,因为它支持动态行为更改,并使用带有委托的组合来实现它。下面就是这样的例子。
public class Context{
private Policy policy;
public void setPolicy(Policy policy){
this.policy = policy;
}
public performTask(){
policy.apply(); // delegate pol