본문 바로가기
728x90
반응형

분류 전체보기274

C#] SOLID 원칙 2. Open Closed Principle (OCP 원칙) Open Closed Principle (OCP)는 software entities (classes 또는 methods)는 extension에 open되고 modification에 closed해야 한다는 원칙이다. 기본적으로, 코드가 변경이 필요하지 않도록 작성하려고 한다. 추가 고객 요청을 처리하기 위해 class를 수정하는 것이 아닌, class의 동작을 확장할 수 있다. 두 예를 통해서 OCP에 맞게 코드를 작성하는 방법을 살펴보자. 처음엔 OCP를 따르지 않게 작성하고, 이후에 OCP에 맞게 리팩토링하자. 월급 계산기 예 한 회사의 모든 개발자 월급의 총합을 계산하는 일을 해야한다. 우선, model class를 생성한다. public class DeveloperReport { public int.. 2024. 1. 23.
C#] Virtual Method virtual method의 정의, 구현방법, 사용, 장단점에 대해 살펴보자. Virtual method란? object-oriented programming의 기존 개념이다. derived class에서 동일한 signature의 method로 override되는 것을 허용한다. overriding은 선택사항이며, derived class는 base class의 기능을 그대로 사용할 수 있다. Method는 기본으로 non-virtual하며, override될 수 없다. method의 return type앞에 virtual 키워드를 추가하므로 virtual method로 선언할 수 있다. virtual은 return type을 갖을 수도 없을 수도 있다. public virtual double Calc.. 2024. 1. 23.
C#] const vs readonly 차이점 C#에서 const와 readonly는 immutable values를 선언할 수 있게 한다. Const const선언은 소스코드에만 존재하고, compiled output에는 없다. const reference는 실제 값으로 대체된다. const property와 몇가지 예를 살펴보자. Access Modifiers와 Types string과 bool, int, float과 같은 primitive type, enum. public class CircleCalculator { public const double E = 2.71; private const double Pi = 3.14; public double GetCircumference(double radius) => 2 * Pi * radius; p.. 2024. 1. 19.
C#] File - 사용 중인 파일 확인 방법 (IOException, HResult) 파일작업은 흔하게 하는 작업이며, 몇몇 경우에 특정 에러를 발생한다. 이미 사용중인 파일에 대해 살펴보고, 에러를 피할 수 있는 방법을 살펴보자. C# 파일작업 일반적으로 파일작업은 읽기, 쓰기, 파일 조작들의 동작이 관련되어 있다. 파일작업을 할 때, 여러 작업 또는 앱에서 동시에 같은 파일에 접근을 시도할 수 있다는 것을 알아야한다. 이러한 동시 접근은 충돌과 에러를 발생한다. 다음과 같은 여러 이유로 발생한다. 다른 앱에서 동시에 파일을 읽거나 쓰고 있을 때 파일을 열었다가 적절히 닫지 않았을 때 돌고있는 시스템이나 바이러스 프로그램에 의해 파일이 잡혀 있을 때 어떻게 이러한 오류를 줄이고 피할 수 있는지 알아보자. Project 세팅 .NET CLI를 사용하여 console app을 생성하자. 에.. 2024. 1. 18.
C#] 식별자/변수명 네이밍 규칙, convention identifier(식별자)란? type(class, interface, struct, delegate, enum) type명, 변수명, member명, namespace명이다. 네이밍 규칙 identifier는 반드시 아래 규칙을 따라야 한다. 아래 규칙을 따르지 않으면 C# compiler가 error를 발생한다. Identifier는 반드시 문자 또는 밑줄선(_)으로 시작한다. if라는 이름의 식별자를 선언하려면 @prefix를 붙여서 @if 로 선언하면 된다. 네이밍 conventions 규칙에 더해, identifier conventions이 .NET API 전체에 사용된다. 이 conventions은 compiler가 강제하지 않더라도, name의 일관성을 제공한다. 다르게 사용해도 무방하다... 2024. 1. 12.
C#] Observer Design Pattern(관찰자 디자인 패턴) Observer Design Pattern에 대해서 objects 사이의 알림 mechanism을 만들 수 있다. 여러 objects가 다른 object를 관찰하고, 관찰하는 object에 이벤트 발생 시 알림을 받는다. 한쪽에는 관찰되는 object인 Provider가 있고, 다른 한쪽에는 Provider를 관찰하는 하나 이상의 Observers가 있다. 이벤트 또는 상태변경과 같은 미리 지정된 조건 발생 시, Observer는 Provider에 대한 알림을 받을 수 있다. Observer Design Pattern이 필요한 경우 이 패턴은 application 내부에 분산된 알림 system이 구현되어 있을때 도움이 된다. 이커머스 시스템을 갖고 있다고 하자. 몇몇 고객들은 특정 판매자의 제품에 관심.. 2024. 1. 10.
728x90
반응형