계산기 응용 프로그램을 만들고 코드 유지 관리를 향상시키고 더 나은 단위 테스트를 수행 할 수 있도록 비즈니스 로직을 UI에서 분리하려고합니다.UI에서 비즈니스 로직을 분리하는 방법
사용자가 응용 프로그램에서 다양한 버튼을 클릭 할 때 발생하는 일을 관리하는 CalculatorUI 클래스를 만들었습니다.
또한 수학을 수행하는 Calculator 클래스를 만들었으며 사용자 요구 사항을 기반으로 계산 결과에 대해 몇 가지 유효성 검사를 수행했습니다. CalculatorUI는 Calculator 클래스의 인스턴스를 만들고 Calculator 클래스의 함수를 호출하여 사용자 클릭에 응답합니다. 내 질문은, 계산기 클래스에서 텍스트 상자를 지우고 잘못된 결과를 사용자가 알 수 있도록 메시지 상자를 표시하는 코드를 작성하는 방법은 무엇입니까?
저는 프로그래밍에 익숙하지 않으며 제 동료 중 한 명 (수석 프로그래머)에 따르면 UI를 비즈니스 로직 및 데이터베이스와 별도로 유지하는 것이 좋습니다.
'txtDisplay'와 'resultValue'가 현재 컨텍스트에 존재하지 않는다는 오류가 발생합니다 ... 또한 bool 변수는 어떻게 사용해야합니까?
class Calculator
{
public double Addition(double value1, double value2)
{
double result = 0;
result = value1 + value2;
return result;
}
public double Subtraction(double value1, double value2)
{
double result = 0;
result = value1 - value2;
return result;
}
public double Multiplication(double value1, double value2)
{
double result = 0;
result = value1 * value2;
return result;
}
public double Division(double value1, double value2)
{
double result = 0;
result = value1/value2;
return result;
}
public bool CalculationValidation(double result)
{
bool isValid;
bool isFalse;
// determine if the initial result is within the specified range
if ((result < -4000000000) || (result > 4000000000))
{
MessageBox.Show("The result is too large or small to be displayed.");
txtDisplay.text = "0";
resultValue = 0;
return;
}
// round the result if necessary
string test = result.ToString();
if (test.Contains("."))
{
test = (Math.Round(double.Parse(test), 10 - test.Split('.')[0].Count())).ToString();
}
else if (test.Length > 10)
{
test = (Math.Round(double.Parse(test), 10).ToString());
}
txtDisplay.Text = test;
}
}