public static int Operation(int firtsOperand, int secondOperand, EnumTypeOperation operation) { var operationFactory = new OperationFactory(); var opera = operationFactory.Fabricate(operation); return(opera != null?opera.Calculate(firtsOperand, secondOperand) : 0); }
public override IOperation Fabricate(EnumTypeOperation operation) { switch (operation) { case EnumTypeOperation.Add: return(new AdditionOperation()); case EnumTypeOperation.Substract: return(new SubstractionOperation()); case EnumTypeOperation.Multiplication: return(new MultiplicationOperation()); case EnumTypeOperation.Division: return(new DivisionOperation()); case EnumTypeOperation.None: default: return(null); } }
public abstract T Fabricate(EnumTypeOperation operation);