가능한 중복 :
StructureMap singleton usage (A class implementing two interface)IoC 컨테이너를 사용할 때 인터페이스 분리를 관리하는 방법은 무엇입니까?
나는 현재 작은 시스템을 설계하고 있는데 내가 현재 IOC의로 structureMap을 사용하고 있습니다. 방금 인터페이스 분리의 요지가 생겼어. 지금 궁금해.
특정 비즈니스 객체가 있으면 구현할 수있는 인터페이스가 3 개 ... 코드의 구성 및 instatiation에서 어떻게 처리해야합니까?
간단한 시나리오에서는 EmployeeServiceObject라는 서비스 계층 클래스에 대해 두 개의 인터페이스가 있다고 가정합니다. IGenericEntity 및 IEmployeeServiceObject입니다.
GenericEntity는 클래스에 CRUD 기능을 제공하고 IEmployeeServiceObject는 비즈니스 쿼리/작업에 대한 결과 집합을 제공합니다.
Facade/Service Layer 메서드에서 EmployeeServiceObject 클래스를 사용해야하고 실제로 두 인터페이스의 기능을 사용해야합니다. 어떻게 처리해야합니까?
처음에는 올바른 작업은 IoC의 구성을 설정하여 IEmployeeServiceObject를 EmployeeServiceObject에 매핑하고 개체에 대한 팩토리를 요청한 다음 CRUD 기능을 사용해야 할 때 IGenericEntity로 캐스팅했지만, 모르겠다. 또한 구체적인 클래스가 실제로 ioc 컨테이너 구성에서 설정되지 않은 인터페이스를 구현한다는 사실을 공식적으로 밝히지 않기 때문에 옳지 않은 것처럼 보입니다.
그리고 나는 분명히 동일한 구체적인 클래스의 두 인스턴스를 생성하지만 다른 인터페이스를 요청하는 것은 더욱 악해진다는 것을 알고 있습니다.
어떻게 처리해야합니까? 그렇다면
public interface IGenericEntity { /**/ }
public interface IEmployeeServiceObject { /**/ }
public class EmployeeServiceObject : IEmployeeServiceObject, IGenericEntity
이 EmployeeServiceObject이 두 인터페이스를 구현한다는 사실이 구현 세부입니다 : 내가 제대로 질문을 이해한다면
안녕, 나는 StructureMap에서이 작업을 수행하는 방법의 세부 사항을 알고하지 않습니다,하지만 당신은 여러 인터페이스와 클래스를 등록 할 수 있어야한다. 그런 다음 인터페이스를 요청할 때 단일 인스턴스를 검색하도록 단일 범위를 설정할 수 있습니다. –
감사합니다 샘. 난 그냥 어떻게 해야할지 알고 싶다 StructureMap ..이 방법은 내가 어떤 IoC 컨테이너와 함께 처리 될지 찾고 있는데 ... 그것을하는 방법의 원칙. – GR7