📄 i_strategy.java
字号:
/*
STRATEGY—跟不同类型的MM约会,要用不同的策略,有的请电影比较好,有的则去吃小吃效果不错,有的去海边浪漫最合适,单目的都是为了得到MM的芳心,我的追MM锦囊中有好多Strategy哦。
策略模式:策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式把行为和环境分开。环境类负责维持和查询行为类,各种算法在具体的策略类中提供。由于算法和环境独立开来,算法的增减,修改都不会影响到环境和客户端。
桥模式提倡抽象的接口和它的实现分离。通常,抽象是指识别具有特殊用途的对象的一组属性和行为的过程。设计对象的这个特殊视图是为了把对象与那些不相干的属性和行为分离。这样得到的对象就是一个抽象。注意一个给定的对象因不同的用处可以有多个相关的抽象。
对于一个给定的抽象的方法(行为)可以有一个或者多个实现。根据实现,一个抽象可以设计为一个有一个或者多个实现的接口。
Strategy和Factory有一定的类似,Strategy相对简单容易理解,并且可以在运行时刻自由切换。Factory重点是用来创建对象。
Strategy适合下列场合:
1.以不同的格式保存文件;
2.以不同的算法压缩文件;
3.以不同的算法截获图象;
4.以不同的格式输出同样数据的图形,比如曲线 或框图bar等
*/
public class I_Strategy{
public static void main(String[] args){
AddComputer add=new AddComputer();
SubtractComputer subt=new SubtractComputer();
ComputeSolve cs=new ComputeSolve(add);
cs.result(10,4);
}
}
abstract class Computer{
public abstract int compute(int a,int b);
}
class AddComputer extends Computer{
public int compute(int a,int b){
return a+b;
}
}
class SubtractComputer extends Computer{
public int compute(int a,int b){
return a-b;
}
}
class ComputeSolve{
Computer computer;
public ComputeSolve(Computer computer){
this.computer=computer;
}
public void result(int a,int b){
System.out.println(computer.compute(a,b));
}
public void setComputer(Computer computer){
this.computer=computer;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -