나는 매우 세밀한 느슨한 결합 디자인을 조립하려고합니다.느슨하게 결합 된 디자인의 일반적인 정의
하지만 일반적인 정의를 처리하는 방법을 결정할 수 없습니다.
지금 당장은 외부 DLL로 추가하여 우려를 분리합니다. 주입 및 인터페이스를 통해 내 도메인은 구현을 알지 못해도 내 비즈니스 로직을 사용할 수 있습니다.
내가 갖고있는 문제는 모든 구성 요소가 느슨하게 결합되어 동일한 인터페이스를 구현해야한다는 것입니다. 내 솔루션은 단지 모든 정의가있는 별도의 프로젝트 (dll)입니다. 이것은 잘 시작되었지만,이 하나의 dll 의존성에 모든 코드를 함께 묶어서 연상케하는 것으로 보입니다.
가장 실용적인 방법은 무엇입니까?
감사합니다.
제가 사용하는 것은 Factory 메소드에 가장 가깝습니다. 하지만 내 레이어 (GUI, 비즈니스, 서비스, 데이터)를 느슨하게 연결하면 모든 구체적인 객체가 전달 될 수있는 공유 된 정의 (인터페이스, 열거 형 등)를 인식하고 있어야합니다. 그래서 그들은 모두 구체적인 인스턴스를 사용하기위한 인터페이스를 알아야 할 필요가 있습니다.이 인터페이스는 정의에 교차점과 의존성을 만듭니다. 나는 그들을 별도의 DLL을 추출하려고하면, 내 UserManagement 로직에 들어갈 것이고, 필자는 DAO 객체 fe의 정의를로드 할 것이다. (당신이 문을 열고 싶을 때 건물의 청사진을 필요로하는 것처럼) – Tim
미안하지만 처음에는 질문에 대한 오해가있었습니다. 따라서 인터페이스가 포함 된 어셈블리가 하나 있고 DI를 사용하여 종속 객체를 만드는 다른 어셈블리에 구현되어 있습니다. 필자는 응용 프로그램의 주요 동작 (스마트 엔터티, 열거 형 및 인터페이스)을 보유하고있는 응용 프로그램에서 핵심 어셈블리를 만드는 경향이 있습니다. 이 어셈블리는 거의 다르지 않지만 애플리케이션의 나머지 부분에 따라 많이 달라집니다.이 프로젝트를 예로 들면 http://whocanhelpme.codeplex.com/을 확인하십시오. 당신은이 핵심 ** 비 대한 ** 전화 수 있지만 정의에 의해, 매우 풍부해야합니다. –
감사! 나는 그것을 조사하고 아키텍처에 대한 개요를 얻으려고합니다. 좀 더 읽고, 내 인터페이스/열거 형을 "내보내기 가능"하게 만드는 대신 "핵심"기능을 결합하기 위해 프로젝트를 재정렬하려고합니다. – Tim