개인 공부

개인 공부/Object Oriented Design Pattern

Creational Pattern - Singleton Pattern

Singleton Pattern 전역 변수를 사용하지 않고 object 하나만 생성하여, 어디에서든지 참조할 수 있도록 하는 패턴 하나의 instance를 생성하며, getInstance method를 통해 모든 client에게 동일한 instance를 반환해주는 작업 advantage of Singleton design pattern Object를 하나만 사용하기 때문에 memory를 절약할 수 있다 하나의 instance를 지속적으로 재사용 가능하다. 전역변수(Global Variable)의 역할을 수행한다. Multi-threaded와 database application에서 주로 사용된다. Example of Singleton Pattern Example1 더보기 // Main.java impor..

개인 공부/Object Oriented Design Pattern

Behavioral Pattern - Mediator Pattern

Mediator Pattern 모든 class 간의 복잡한 상호작용을 캡슐화(encapsulate)하여 하위 class에 위임하여 처리할 수 있도록 하는 패턴. Object들 사이의 복잡한 관계를 다수 대 하나의 관계로 바꿔주기 위해 Mediator(중재자) pattern을 이용한다. 관계의 복잡성을 떨어뜨려 유지 보수 및 재사용의 확장성에 유리한 패턴 Object들 사이에 관계를 통제하는 Mediator를 삽입하여 모든 object들이 복잡한 communication을 가능하게 만듭니다. 캡슐화(Encapsulate)란? 중요한 데이터를 보존, 보호하기 위해서 연관 있는 attribute와 method를 class로 묶는 작업을 말합니다. Access Modifier을 이용해서 은닉성을 유지합니다. 외..

개인 공부/Object Oriented Design Pattern

Structural Pattern - Adaptor Pattern

Adaptor Pattern 말 그대로 어댑터(Adaptor)처럼 사용되는 디자인 패턴이다. 한국에서 전자기기를 사용하기위해 220V규격을 맞춰서 사용하는데, 그대로 110V 플러그로 사용할 수 없다. 이때에 변환젠더(Adaptor)를 사용하면 110V 규격에서도 사용가능하다. 이처럼 서로 호환성이 맞질않아 interface 사이를 잇는 bridge 역할을 수행하는 패턴 여기서 잠깐! - Adapter ? Adaptor ? 둘중 무엇일까? https://englishforkorean.tistory.com/entry/Adapter-vs-Adaptor-%EB%9C%BB-%EC%B0%A8%EC%9D%B4 Adapter vs Adaptor 뜻 차이 Adapter vs Adaptor 전통적인 영어에서는 이 두 가..

개인 공부/Object Oriented Design Pattern

Template Method Pattern

앞선에서 다루었던 Data Abstraction입니다. https://coding-leaf.tistory.com/156 Data Abstraction - 데이터 추상화 데이터 추상화에 대해서 알기 위해 먼저 추상화를 알 필요가 있다. 추상화(abstraction)는 여러가지 필요한 부분, 중요한 부분을 하나로 만드는 것을 말한다. 그 예로, 동그란 원에 숫자가 12개까지 coding-leaf.tistory.com Template Method Pattern Superclass의 method로 일반적으로 abstract superclass이며, 수많은 상위 단계의 관점에서 연산의 뼈대(골격)을 정의합니다. Abstact keyword를 사용하여 empty implementation을 만듭니다. abstrac..

개인 공부/Object Oriented Design Pattern

Refactoring by Inheritance & Its Problem

Generic Component(재사용 가능한 component) 소스 코드를 수정하거나 사소한 변경없이 다양한 컨텍스트에서 확장(extended), 조정(adapted) 및 재사용(reused)할 수 있는 프로그램 구성 요소. 객체 간 기능을 공유한다. Refactoring이란? 반복되는 코드를 계속 사용하는 것이 아니라, 하나의 generic component로 만들어서 계속 사용하게 코드를 바꾸는 것이다. refactoring를 하면, 가독성을 높이고 유지보수를 쉽게 할 수 있게 도와준다. Generalizing - 일반화 유사한 문제의 범주에 대한 특정 해결책의 재구성 Refactoring 과정 다양한 위치에서 중복 코드 세그먼트 식별 중복 logic을 generic component로 캡처 반복..

gurcks8989
'개인 공부' 카테고리의 글 목록