Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Bridge

509 Aufrufe

Veröffentlicht am

Bridge

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

  • Gehören Sie zu den Ersten, denen das gefällt!

Bridge

  1. 1. 목차 Bridge pattern 1. 1) 2) 3) 정의 구조 사용 예 (1) (2) C# Structural example code Real-world code - C# 개발 코드 - Java 개발 코드
  2. 2. 1. Bridge pattern
  3. 3. 1. Bridge pattern / 1) 정의 1. Bridge pattern 1) 정의 (1/3) (1) 구조적 패턴 “추상과 구현의 분리” 의 개념으로 구현부에서 추상층을 분리하여 각자 독립적으로 변형할 수 있게 하는 패턴입니다. - 변경되는 요구사항에 클래스의 확장을 하지 않고 쉽게 해결하는 방법을 제공합니다. - 추상화 개념과 구현을 분리시켜 독립적으로 변화할 수 있도록 파생 클래스의 폭발적인 증가 없이 다양한 구현이 필요한 경우 사용하는 패턴입니다.
  4. 4. 1. Bridge pattern / 1) 정의 1. Bridge pattern 1) 정의 (2/3) 클래스 클래스 + 기능 구현 (implementation) 기능 추상과 구현 분리 추상 (abstraction) 구조 A 구조 B 어떤 클래스가 자주 바뀐다면, 객체 지향 프로그래밍의 특징들은 아주 유용해질 수 있습니다. 코드를 수정하는데 프로그램에 대해 최소한만 알고도 쉽게 수정할 수 있기 때문입니다. [그림1]. Bridge pattern 의 모형 (일반 : 구조 A , Bridge pattern 적용 : 구조 B) : 수정 및 변경의 범위
  5. 5. 1. Bridge pattern / 1) 정의 1. Bridge pattern 1) 정의 (3/3) 클래스 + 기능a 클래스 + 기능b 클래스 + 기능d 클래스 + 기능e 클래스 + 기능f 기능a 클래스 + 기능c 기능b 기능c 클래스 + 기능g 클래스 기능d 구조 A 구조 B [그림2]. Bridge pattern 의 모형 (일반 : 구조 A , Bridge pattern 적용 : 구조 B) 기능e 기능f
  6. 6. 1. Bridge pattern / 2) 구조 1. Bridge pattern 2) 구조 (1/2) + public - private △ 상속 ◇ 집합연관관계 [그림3]. Bridge pattern 클래스 다이어그램
  7. 7. 1. Bridge pattern / 2) 구조 1. Bridge pattern 2) 구조 (2/2) 1 3 2 4 [참여객체] ① Abstraction : 추상 인터페이스를 정의, Implementor에 대한 참조를 유지합니다. ② RefinedAbstraction : Abstraction에 의해 정의된 인터페이스를 확장합니다.(extends) ③ Implementor : 구현 클래스를 위한 인터페이스를 정의합니다. ④ ConcreteImplementor : Implementor 인터페이스를 구현합니다.
  8. 8. 1. Bridge pattern / 3) 사용 예 / (1) C# Structural example code 1. Bridge pattern 3) 사용 예 (1) C# Structural example code (1~3p) 이 예제코드는 구현과 추상을 분리하여 브리지 패턴을 보여줍니다. 구현은 객체의 추상화를 사용하는 클라이언트를 변경하지 않고 발전 할 수 있습니다. -1-
  9. 9. 1. Bridge pattern / 3) 사용 예 / (1) C# Structural example code 1. Bridge pattern 추상 인터페이스를 정의, Implementor에 대한 참조를 유지합니다. 구현 클래스를 위한 인터페이스를 정의합니다. -2-
  10. 10. 1. Bridge pattern / 3) 사용 예 / (1) C# Structural example code 1. Bridge pattern Abstraction에 의해 정의된 인터페이스를 확장합니다. Implementor 인터페이스를 구현합니다. Output ConcreteImplementorA Operation ConcreteImplementorB Operation -3-
  11. 11. 1. Bridge pattern / 3) 사용 예 / (2) Real-world code – TOCMaster 1. Bridge pattern 3) 사용 예 (2) Real-world code - TOCMaster 밑의 화면은 직접 제작한 이미지뷰어 연결형 택스트에디터기에서 일부분인 찾기및 바꾸기 기능의 UI입니다. Bridge 패턴의 샘플코드와는 방식이 틀리나 구조가 비슷하다고 판단되여 예를 들게 되었습니다. -1-
  12. 12. 1. Bridge pattern / 3) 사용 예 / (2) Real-world code – TOCMaster 1. Bridge pattern button1_Click 은 찾기 버튼 button2_Click 은 바꾸기 버튼 입니다. 여기서 Finder()는 같은 기능을 하기때문에 따로 분리 하여 관리를 하고자 이와 같이 코드하였습니다. -2-
  13. 13. 1. Bridge pattern / 3) 사용 예 / (2) Real-world code – TOCMaster 1. Bridge pattern -3-
  14. 14. 1. Bridge pattern / 3) 사용 예 / (2) Real-world code – Java impl 1. Bridge pattern 3) 사용 예 (2) Real-world code – Java impl(헌법재판소) Java 에서 impl 이란 폴더로 DAO와 ServiceImpl 이 구성되어있는 구조를 자주 접하게 됩니다. -1-
  15. 15. 1. Bridge pattern / 3) 사용 예 / (2) Real-world code – Java impl 1. Bridge pattern -2-
  16. 16. 1. Bridge pattern / 정리 1. Bridge pattern ※유용한 점※ 1. 인터페이스와 구현방식의 완전결합을 피하고자 할때 2. 인터페이스와 구현방식이 각각 다른 형태의 하위 클래스 구조를 가지면서 확장되기를 원할 때 3. 인터페이스의 구현방식을 Client에게 완전히 숨기고자 할때 ※장점※ 1. 전반적인 설계가 계층화, 구조화 될 수 있습니다. 2. 인터페이스 클래스와 구현 클래스가 별도의 상속 구조임으로 서로 독립적 확장이 용이 합 니다.
  17. 17. Q&A

×