arithmetic.java
来自「java设计模式源码」· Java 代码 · 共 54 行
JAVA
54 行
package com.oozinoz.function;
/*
* Copyright (c) 2001, 2005. Steven J. Metsker.
*
* Steve Metsker makes no representations or warranties about
* the fitness of this software for any particular purpose,
* including the implied warranty of merchantability.
*
* Please use this software as you wish with the sole
* restriction that you may not claim that you wrote it.
*/
/**
* Wrap an arithmetic function around a pair of supplied sources.
*/
public class Arithmetic extends Function {
protected char op;
/**
* Construct an arithmetic function that decorates the provided source
* functions.
*
* @param f1
* Another function wrapper
* @param f2
* Yet another function wrapper
*/
public Arithmetic(char op, Function f1, Function f2) {
super(new Function[] { f1, f2 });
this.op = op;
}
/**
* @return an arithmetic operation (as indicated in the constructor) applied
* to the source functions' values at time t.
* @param t
* time
*/
public double f(double t) {
switch (op) {
case '+':
return sources[0].f(t) + sources[1].f(t);
case '-':
return sources[0].f(t) - sources[1].f(t);
case '*':
return sources[0].f(t) * sources[1].f(t);
case '/':
return sources[0].f(t) / sources[1].f(t);
default:
return 0;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?