Design Pattern(2)-Strategy Pattern
来源:互联网 发布:淘宝怎样找妹子服务 编辑:程序博客网 时间:2024/06/04 08:16
试想这样的场景,一个员工,在面向对象设计里,它自己维护了自己的工作时长,职位类型等成员变量,那么我们做公司管理系统时就可能希望将计算工资这个方法放在员工类里,当我们想要知道一个员工的工资,就调用这个员工的getSalary()方法。但是问题是一个员工的工资计算策略可能会变,今天他是固定工资,明天经理觉得他表现不错,就想把他改成别的工资策略了说不定。因此该场景下,Context就是一个Worker,Worker持有一个Strategy的引用。具体策略继承Strategy抽象类或者实现Strategy接口。
官方类图:
代码如下:
Strategy接口:
public interface Strategy { int calculateSalary();}
A_Strategy类:
public class A_Strategy implements Strategy{ @Override public int calculateSalary() { return 4000; }}
B_Strategy类:
public class B_Strategy implements Strategy{ private int hours; public B_Strategy(){ hours=10; } @Override public int calculateSalary() { return 50*hours; }}
Worker类:
public class Worker{ Strategy strategy; public Worker(Strategy strategy){ this.strategy=strategy; } public int getSalary(){ return strategy.calculateSalary(); }}
main方法:
public class Main { public static void main(String[] args){ Worker worker=new Worker(new A_Strategy()); System.out.println(worker.getSalary()); worker.setStrategy(new B_Strategy()); System.out.println(worker.getSalary()); }}
0 0
- Design Pattern(2)-Strategy Pattern
- Design pattern----Strategy Pattern
- Design Pattern —Strategy Pattern
- Design Pattern 9-strategy
- Strategy design pattern
- Strategy Design Pattern
- Design Pattern: Strategy 模式
- 一句话Design Pattern:Strategy
- Strategy Design Pattern
- Abstract Factory Design Pattern && Strategy Design Pattern
- strategy design pattern and composite design pattern
- Design Pattern - Behavioral Patterns - Strategy Pattern
- design pattern : 策略模型Strategy
- Strategy pattern in algorithm design
- Design Pattern - Strategy(C#)
- design pattern——strategy
- Head First 设计模式 Design Pattern 1-2 Strategy, Observer
- 策略模式 in Java (Strategy Design Pattern)
- Trafodion LOB大对象
- 大型软件下载网址
- 面试求职:数据库常见面试题(数据库优化思路)
- 蓝桥杯 历届试题 回文数字
- Caffe源码中Pooling Layer文件分析
- Design Pattern(2)-Strategy Pattern
- mybatis中的#和$的区别
- item图片 打开新的activity
- 使用Faster-Rcnn进行目标检测
- Hibernate表关系映射之一对一映射
- 个人作业1——四则运算题目生成
- swift开发中的一些小方法
- 正则详解及实战(JavaScript)
- Mysql 数据库(九)配置utf8编码集