策略模式结构
classDiagram class Context{ -Statage statage +ContextIntegace(Statage statage) } class Stratage{ <<abstract>> + algorithmInterface() } class ConcreateStratage1{ } class ConcreateStratage2{ } Context o-- Stratage ConcreateStratage1 --|>Stratage ConcreateStratage2 --|>Stratage以实现加、减、乘、除的计算器功能为例
分析:加、减、乘、除都是一种策略
classDiagram class StratageContext{ -OperatrionStratage statage +ContextIntegace(Statage statage) } class OperatrionStratage{ <<abstract>> + contextInterface() } class ConcreateStratageAdd{ } class ConcreateStratageSub{ } StratageContext o-- OperatrionStratage ConcreateStratageAdd --|>OperatrionStratage ConcreateStratageSub --|>OperatrionStratageContext 上下文
public class StratageContext {
private OperationStratage stratage;
public OperationStratage getStratage() {
return stratage;
}
public void setStratage(OperationStratage stratage) {
this.stratage = stratage;
}
public StratageContext() {
super();
}
public StratageContext(OperationStratage stratage) {
super();
this.stratage = stratage;
}
public double contextInterface(double numA, double numB) {
return stratage.algMethod(numA, numB);
}
}
策略
public abstract class OperationStratage {
public abstract double algMethod(double numA, double numB);
}
加
public class ConcreateStratageAdd extends OperationStratage {
@Override
public double algMethod(double numA, double numB) {
return numA + numB;
}
}
减
public class ConcreateStratageSub extends OperationStratage {
@Override
public double algMethod(double numA, double numB) {
return numA - numB;
}
}
标签:double,大话,笔记,class,OperationStratage,numA,设计模式,public,stratage
From: https://www.cnblogs.com/lixiuming521125/p/17777680.html