展开atgdxtz
e 5a 48 de 588 b 662616964757 a 686964616 f 3133337626231正好按照设计模式(简单工厂模式)制作了计算机。
package com.me Davis.simple factory.ui;
importjava.util.Scanner;
import com.me Davis.simple factory.operate.operator factory;
publicclassCaculatorUI{
私有状态扫描仪;
publicstaticvoidmain (stringlcddzxcargs ) {
try{
sc=newscanner(system.in );
longfirst=sc.nextLong (;
sc=newscanner(system.in );
Stringoperator=sc.nextLine (;
sc=newscanner(system.in );
longsecond=sc.nextLong (;
operatorfactoryopf=newoperatorfactory (;
}catch(exceptione ) {
}
}
}
package com.me Davis.simple factory.operate;
publicclassoperatoraddextendsoperator {
@Override
publiclonggetresult (长第一,长第二) {
返回第一次连接;
}
}
package com.me Davis.simple factory.operate;
publicclassoperatordivextendsoperator {
@Override
publiclonggetresult (长第一,长第二) {
返回第一次/第二次;
}
}
package com.me Davis.simple factory.operate;
publicclassOperatorFactory{
publicoperatorgetoperator (字符串操作器) throwsException{
交换机(操作器) {
case' ':
returnnewOperatorAdd (;
case'-':
returnnewOperatorSub (;
case'*':
returnnewOperatorMul (;
case'/':
returnnewOperatorDiv (;
默认:
thrownewException (;
}
}
}
package com.me Davis.simple factory.operate;
publicclassoperatormulextendsoperator {
@Override
publiclonggetresult (长第一,长第二) {
返回第一次*第二次;
}
}
package com.me Davis.simple factory.operate;
publicclassoperatorsubextendsoperator {
@Override
publiclonggetresult (长第一,长第二) {
返回第一次连接;
}
}