본문 바로가기

전체 글33

virtual 메서드의 overriding과 Interface의 구현을 구분하자 프로그램 개발 시 클래스 간의 관계를 정의할 경우, Interface의 구현과 가상(virtual) 메서드의 재정의(overriding)는 종종 혼동되는 개념입니다. 이 둘의 차이점과 각각의 사용 사례를 구분하여 살펴보겠습니다. 1. Interface의 구현 인터페이스(Interface)는 클래스가 특정 기능을 지원한다는 것을 나타내는 역할을 합니다. 클래스가 Interface를 구현하면 해당 Interface가 정의한 모든 메서드를 반드시 구현해야 합니다. 이것은 클래스 간의 강력한 결합을 피하고, 유연성과 확장성을 제공합니다. interface IPlayable { void Play(); } class MusicPlayer : IPlayable { public void Play() { Console... 2024. 4. 7.
[C#] 상속과 Interface 구현, 어떤 것을 선택해야 할까? 프로그래밍을 하며 클래스간의 관계를 정의할 경우 상속과 Interface 구현을 주로 사용하는데, 이 둘의 차이점과 각각의 장단점을 비교하여, 왜 Interface를 정의하고 구현하는 것이 더 좋은 선택인지 알아보겠습니다. 1. 상속과 Interface 구현의 차이점 상속(Inheritance) - 상속은 클래스 간의 계층적인 관계를 나타냅니다. - 부모 클래스의 멤버(필드, 메서드)를 자식 클래스가 그대로 상속받아 사용할 수 있습니다. - 상속은 is-a 관계이며, 자식 클래스가 부모 클래스의 하위 타입입니다. - 클래스 간의 강한 결합을 가져오며, 부모 클래스의 변경은 자식 클래스에게 영향 줄 수 있습니다. - 예시 : 동물을 나타내는 Animal 클래스가 있고, 각 동물들이 소리를 낼 수 있는지를 .. 2024. 4. 5.
C# 표준 Dispose 패턴을 구현하자 안녕하세요! 이번 포스팅에서는 프로그래밍에서 중요한 개념 중 하나인 "표준 Dispose 패턴"에 대해 알아보겠습니다 1. Dispose 패턴이란? 먼저 Dispose 패턴은 .NET에서 자원을 명시적으로 해제하는 방법을 제공합니다. 주로 비관리 자원을 사용할 때 사용되며, 메모리 누수를 방지하여 시스템 성능을 향상시킵니다. 또한, 이 패턴을 구현하면 개발자가 직접 자원을 관리할 수 있기 때문에 프로그램의 안정성과 효율성을 높일 수 있습니다. 아래는 Dispose 패턴을 사용한 예시코드입니다. public class MyResource : IDisposable { private bool disposed = false; // 인터페이스// public void Dispose() { Dispose(true).. 2024. 4. 2.