728x90 반응형 C#72 C#] SOLID 원칙 5. Dependency Inversion Principle(의존성 역전 원칙) Dependency Inversion Principle의 기본 아이디어는 lower-level 모듈의 변경에 의해 영향이 없고 재사용성이 있는 higher-level modules를 만들어야 한다는 것이다. High-level 모듈은 low-level 모듈에 의존하지 않는다. 둘다 abstractions에 의존한다. Abstractions은 상세기능에 의존하지 않는다. 상세기능은 abstractions에 의존한다. 이해하기 위해, 다음 예를 살펴보자. High-Level, Low-Level 모듈이란 high-level 모듈의 기능은 추상적이며, 복잡한 로직을 가지고 있다. low-leve 모듈은 application의 작은 파트와 상세내용에 집중한다. high-level 모듈안에서 사용된다. Depend.. 2024. 2. 7. C#] SOLID 원칙 4. Interface Segregation Principle(인터페이스 분리 원칙) 어떠한 고객에게도 사용하지 않는 함수에 의존하기를 강요할 수 없다. 기본적으로 ISP는 최소한의 필요한 구현만 하도록 코드작성을 줄여준다. 따라서 interfaces는 오직 필요한 declarations만 갖도록 만들어야 한다. 다른 declarations을 가지고 있는 interface는 더 작은 interfaces로 분리되어야 한다. Example 우리가 운전하기도 하고, 날수도 있는 탈것이 있다. public interface IVehicle { void Drive(); void Fly(); } 여러 기능이 있는 차를 개발하려고 한다. IVehicle 인터페이스를 사용하기 좋다. public class MultiFunctionalCar : IVehicle { public void Drive() { .. 2024. 2. 7. C#] Access Modifiers Access modifiers는 C# project에서 object와 object의 members의 접근성을 명시한다. encapsulation을 강화하고, 의도하지 않은 접근이나 변경으로부터 보호한다. 모든 C# types는 access modifiers를 갖는다. 명시되지 않은 경우 기본 access modifier가 지원된다. Access Modifiers Types private, public, protected, internal, 그리고 protected-internal, private-protected 와 같은 두 가지 조합이 있다. 각 access modifiers는 다른 수준의 접근성과 가시성을 제공하며, 우리는 이를 사용하여 object의 동작을 제어할 수 있다. Private Acces.. 2024. 2. 2. C#] Virtual VS Abstract 함수 차이점 OOP는 상속을 사용한다. 효율적이고 정돈되 코드를 위해 class의 공통 함수를 사용한다. 함수에 대해서 C#은 두가지 별도의 접근방식을 사용한다. virual 과 abstract methods이다. 둘다 polymorphism이 가능하지만, 구현과 사용방법은 상당히 다르다. Virtual vs. Abstract 대중교통 사무실을 만들어보자. 사용자는 Car, Train, Plane 중에 선택할 수 있고 이동시간과 기본요금을 알 수 있다. 사용자의 옵션에 따라 대중교통 object를 초기화하는 CreateTransportMode() 함수를 갖는 TransportAgency class를 만들어보자. public enum TransportModeType { Car, Plane, Train } interna.. 2024. 2. 2. C#] Value VS Reference Types C# data types 분류에 대해 살펴보자. value types과 reference types의 차이점도 살펴보자. C#은 strongly-typed 언어이다. 각 변수가 특정 type을 갖고 있고, 각 type은 value type 또는 reference type이 될 수 있다. Value Types 값 타입 변수는 데이터를 직접적으로 갖고 있고, System.ValueType으로부터 상속받은 struct keyword를 사용하여 지정된다. Numeric types bool, char types Date types 내장 값 타입을 제외하고, struct keyword를 사용해서 custom 값 타입을 정의할 수 있다. fields 또는 properties로 값 타입 또는 참조 타입을 가질 수 있다.. 2024. 2. 1. C#] Class Variable, Class Reference, Class Instance의 차이점 1. Variable of a Class : 초기화 되지 않은 class의 copy 2. Instance of a Class : new keyword를 사용하여 초기화된 class, 메모리를 갖고 있고 다른 instance와 메모리 공유하지 않는다. 3. Reference of a Class : 존재하는 instance를 사용하여 초기화된 class의 copy, memory 공간이 없으며, 동일한 instance의 메모리를 공유한다. Class란? 간단히 말해서, C#의 사용자 정의 타입이다. string을 data type이라고 하지만, string data type은 C#에 class로 만들어져있다. 미리 정의된 class 또는 사용자정의 class 모두 data types이다. 우리는 class를 .. 2024. 1. 31. 이전 1 2 3 4 5 ··· 12 다음 728x90 반응형