데코레이터 패턴 (decorator pattern)
2017. 5. 14. 02:37
DevLog/Design pattern
데코레이터 패턴 (decorator pattern) 객체에 추가적인 요건을 동적으로 첨가한다.데코레이터는 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다. 데코레이터 패턴 클래스 다이어그램 ConcreteComponent에 새로운 행동을 동적으로 추가할수 있다.각 데코레이터 안에는 구성요소(Component)에 대란 레퍼런스가 들어있는 인스턴스 변수가있다.Decorator는 자신이 장식할 구성요소(Component)와 같은 인터페이스 또는 추상 클래스를 구현한다.ConcreteDecoratorA, ConcreteDecoratorB 에는 그 객체가 장식하고있는(데코레이터가 감싸고 있는 Component객체)을 위한 인스턴스 변수가 있다. 따라서 데코레이터는 Component..
옵저버 패턴 (observer pattern)
2017. 5. 14. 02:35
DevLog/Design pattern
옵저버 패턴 (observer pattern) 한객체의 상태가바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로일대다(one-to-many) 의존성을 정의한다. 옵저버 패턴을 구현하는 방법에는 여러가지가 있지만 대부분 상태를 저장하고있는 주제 인터페이스를 구현한 하나의 주제객체와 주제객체에 의존하고있는 옵저버 인터페이스를 구현한 여러개의 옵저버객체 가 있는 디자인을 바탕으로 한다. 데이터 전달방식은 2가지가 있다.주제객체에서 옵저버로 데이터를 보내는 방식(푸시 방식)옵저버에서 주제객체의 데이터를 가져가는 방식 (풀 방식) 옵저버 패턴 클래스 다이어그램 디자인 원칙. 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해야 한다. 옵저버 패턴은..
스트래티지 패턴 (strategy pattern)
2017. 5. 14. 02:33
DevLog/Design pattern
스트래티지 패턴(strategy pattern) 알고리즘군을 정의하고 각각캡슐화하여 교환해서 사용할 수 있도록 만든다. 스트래티지패턴을 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할수 있다. 오리 어플리케이션 게임을 운영하는 회사를 다니면서 오리게임을 만든다고 가정했을때. 표준적인 객체지향 기법을 사용하여 Duck 이라는 슈퍼클래스를 만든다음 그 클래스를 확장하여 다른 종류의 오리를 만든다. 추상클래스인 Duck 클래스를 ReadHeadDuck 클래스와 MallardDuck 클래스가 상속을 받아 추상메소드인 display()를 각각 구현한다. 문제의 시작1 원래는 그럴 계획이 없었는데.. 오리들이 물에 떠있는 기능 이외에 날아다녀야하는 요구사항이 생겼다. 간단하네.. ? 이제 모..
컴퓨팅 사고력(Computational Thinking)이란?
2017. 5. 13. 23:00
IT Trends
컴퓨팅 사고력(이하 CT)는 문제해결과정입니다. CT는 많은 특징과 성질이 있죠. CT는 컴퓨터 응용프로그램에 개발에 필수적이죠. 또한, 모든 과목에 걸쳐 문제해결을 도와주는 데 사용하기도 합니다. 가령, 인문학, 수학, 과학 등에요. 여러 교과에서 CT를 배운 학생은 교실 안에서 배우는 교과 내용과 교실 밖의 삶의 관계를 볼 수 있게 됩니다. 이 코스는 CT의 몇 요소를 경험하는 과정을 제공합니다. 즉,분해: 자료, 과정, 문제를 작고 다룰 수 있는 부분으로 나누기 패턴 인식: 데이터 안에 있는 패턴, 동향, 규칙들을 관찰하기 추상화: 이 같은 패턴들을 만드는 일반 원칙 정하기 알고리즘 설계: 이 문제나 유사한 문제를 풀기 위한 단계적 방법 만들기 아래 단체들은 교육자를 위한 CT를 만들기 위해 협조하..