아래 클래스 다이어그램에서 Bridge 디자인 패턴을 사용하여 간단한 문서 작성기 응용 프로그램을 구현하려고했습니다. 구체적인 "DocMakers"는 문서 레이아웃 작업을 담당하지만 각 문서를 다른 형식으로 생성하는 "IFileFormat"을 허용합니다.Bridge 디자인 패턴에서 단일 기능에 특수 기능을 추가 할 수 있습니까?
제 문제는 문서를 특별한 방식으로 수정할 수 있기를 원합니다. PDF 인 경우
이 특수 PDF 기능이 DocMakerLayoutA 또는 DocMakerLayoutB이든 관계없이 문서 작성 마지막에 발생하지만 모든 것이 인터페이스에 의해 지배되므로 장소를 찾지 못하는 것 같습니다. 그것을 위해.
"DoSomethingSpecialForPDF"함수를 "IDocMaker"에 추가하면 작동하지만 "FileFormarBMP"클래스의 경우 아무런 작업도 수행하지 않아야합니다. 그것은 단지 나쁜 디자인처럼 보인다.
처음부터 잘못 설계 한 적이 있습니까? 아니면이 구조로이 작업을 수행 할 수있는 방법이 있습니까? 당신은 추상화와 구현을 분리 할 필요가있을 때
두 가지를 원한다고 생각합니다. 하나는 다른 문서 유형을 만들 수 있으므로 일반 문서 데이터 유형을 정의하게됩니다. 다른 하나는 다른 유형의 기능을 사용하여 문서를 만들려고합니다. 두 가지 다른 관점이 있습니다. –