반응형 프로그래밍 이야기83 [C++]Design Pattern - 변하는 것을 분리하기 [문제점] 가령 이름, 나이, 주소 등을 입력하는 EditBox가 있고, 각 EditBox는 입력 목적에 따라 허용 문자를 달리 할 수 있도록(정책) EditBox를 구현해보자. 다음의 코드는 이에 대한 예가 될 수 있겠다. #include #include #include using namespace std; class Edit { string data; public: virtual bool validate(char c) { return isdigit(c); } string getData() { data.clear(); while (1) { // 한글자 입력 받기 char c = _getch(); // Enter Key > 입력 완료 if (c == 13) break; // 입력 유효성 검사 (정책) i.. 2020. 12. 1. [C++]Design Pattern - 변하는 것을 분리하기 [문제점] 가령 이름, 나이, 주소 등을 입력하는 EditBox가 있고, 각 EditBox는 입력 목적에 따라 허용 문자를 달리 할 수 있도록(정책) EditBox를 구현해보자. 다음의 코드는 이에 대한 예가 될 수 있겠다. #include #include #include using namespace std; class Edit { string data; public: virtual bool validate(char c) { return isdigit(c); } string getData() { data.clear(); while (1) { // 한글자 입력 받기 char c = _getch(); // Enter Key > 입력 완료 if (c == 13) break; // 입력 유효성 검사 (정책) i.. 2020. 12. 1. [C#] Lamda, Func, Action Lamda Lamda는 익명 메소드이며 Delegate의 익명 메소드를 좀 더 간결하게 표현할 수 있는 문법이다. Delegate의 익명 함수의 사용 방식은 아래와 같다. // Delegate 형식 선언 및 정의 delegate int DelegateExample(int a, int b); // 사용할 함수 int Sum(int a, int b) { return a + b; } // 일반적인 사용방식 DelegateExample de1 = Sum; // 익명 함수 선언 및 사용 DelegateExample de2 = delegate(int a, int b) { Console.WriteLine("a + b = " + (a + b) ); } de2는 Sum을 사용하지 않고 직접 익명 함수를 적용했다. 이것을.. 2020. 11. 29. [C#] Delegate, Event 이제 함수도 파라미터로 넘겨보자. 함수의 유연성, 확장성! Delegate를 통해서 함수조차도 변수로 만들 수 있다. 즉 변수를 함수의 파라미터로 전달하는 것처럼, 함수도 Delegate를 통한 변수화를 통해 매개변수로 전달이 가능하다. 이로 인한 함수의 활용성과 확장성이 놀랍게 향상 된다. Delegate의 기본 형태 delegate [리턴 타입] [함수 대리자 이름] (매개변수 ...) delegate int DelegateExample(int a, int b); int Sum(int a, int b) { return a + b; } 사용하고자 하는 함수 Sum()이 있다. 이 함수의 형태(리턴타입, 매개변수)를 그대로 delegate 선언에 맞춰준다. Delegate의 사용 방법 기본 선언 방법 D.. 2020. 11. 26. 이전 1 ··· 14 15 16 17 18 19 20 21 다음 반응형