Intermediator Pattern for Interoperability of Business Components

비즈니스 컴포넌트의 상호운용성을 위한 Intermediator 패턴

  • 이창목 (전북대학교 컴퓨터통계정보학과) ;
  • 유철중 (전북대학교 컴퓨터과학) ;
  • 장옥배 (전북대학교 컴퓨터과학) ;
  • 문윤호 (전주기전여자대학)
  • Published : 2001.04.01

Abstract

Software design patterns are reusable solutions to recurring problems that occur during software development. As programmers gain experience, they recognize the similarity of new problems to problems they have solved before. With even more experience, they recognize that solutions for similar problems follow recurring patterns. In this paper, as one of these reusable design-patterns, the Intermediator pattern for the efficient communication between business component is designed and implemented. Existent business components were way that follow Facade pattern. But Facade pattern is almost like the existing Interface pattern in that the communication of all the object outside the set is done by only one representative object, and this causes the traffic system to be overloaded. Therefore, the Intermediator pattern supplements the traffic overloads by improving the inefficient system of business components' communication through multi-interface, and make all communication behavior between objects done by Intermediator object which controls all actual behavior by way of Intermediator method implementation. Consequently, the Intermediator pattern is designed and implemented in this paper can bring down the level of coupling and raise the cohesion among objects, and refer to many of other object flexibly through several interfaces.

기존의 비즈니스 컴포넌트들간의 의사소통은 Facade 패턴을 따르는 방식이었다. 그러나 Facade 패턴은 대표객체 하나만으로 소속객체 밖의 모든 객체들과의 의사소통을 전달하는 방식으로서 기존의 Interface 패턴과 거의 비슷하며, 반드시 대표객체를 통해서만 의사소통이 가능하므로 여러 객체들의 동시 접근 시 과부하로 인하여 결과 반환에 속도저하의 단점을 가지고 있다. 따라서 본 논문에서 제안한 intermediator 패턴은 이러한 과부하 현상으로 인한 저효율성의 컴포넌트 의사소통 방식을 개선하여 여러 인터페이스를 통한 속도저하의 단점을 보완하였고, Intermediator 객체내의 메소드 구체화를 통하여 실제 행위만을 관리하는 Intermediator 객체를 두어 모든 행위는 Intermediator에서 이루어지도록 하였다. 그렇기 때문에 본 논문에서 제안한 Intermediator 패턴은 객체간의 결합도를 줄일 수 있고 또한 응집력은 높일 수 있으며, 다른 여러 객체들의 참조에도 여러 인터페이스를 통하여 유연하게 대처할 수 있다는 장점이 있다.

Keywords