반응형
특정 네임스페이스(Namespace) 로 묶여 있는 다수의 클래스 들을 미리 한번에 생성해야 하는 경우가 있다.
예를 들어 다양한 음식 메뉴들을 보여줘야 하는 경우 각각 Food 클래스에서 상속받은 각 음식들을 앱이 실행되는 순간 미리 객체를 생성한다고 하자.
간단하게 아래와 같이 구현할 수 있을 것이다.
보는 바와 같이 Card 라는 네임스페이스 하의 클래스들 마다 인스턴스를 생성해 줘야 한다.
그런데 서비스를 하다 보면 앞으로 무수히 많은 카드 클래스들이 계속해서 추가 될 것이다.
이렇게 카드 클래스가 추가 되면 그때마다 해당 카드의 인스턴스를 생성하는 코드를 하드 코딩으로 입력해야 하며 만약 카드 클래스의 종류가 수십 수백개나 된다면 노가다 및 가독성, 실수 가능성 등이 더욱 부각될 것이다.
이를 자동화 하여 Card 라는 네임스페이스에 속해 있는 클래스들 중 이름이 "Card_" 로 시작하는 클래스를 추려서 자동으로 인스턴스를 생성하는 코드를 작성해 보았다.
매우 간단하게 구현이 가능하다.
AppDomain 의 assembly 를 통해 앱에 존재하는 클래스들의 타입으로 네임스페이스와 클래스 이름을 가져올 수 있다.
원하는 조건에 맞는 클래스 들을 추려내어 생성해 주면 앞으로 클래스가 늘어날 경우 프로젝트에 해당 클래스만 추가해 주면 알아서 생성이 될 것이다.
반응형
댓글