목록디자인패턴 (6)
BOID
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nazix/btskhcHDvhv/AbEDzFAXgnWijcmiN4kPTk/img.png)
안녕하세요, HoonIOS입니다. :) 저번에는 간단하게 상태패턴에 대해 알아봤는데요, 이번에는 구조에 대해 알아보겠습니다. 상태패턴 구조 콘텍스트 - 상태에 대한 참조를 저장하고 모든 상태별 작업을 하는 곳 - 상태 인터페이스를 통해 상테 객체와 통신하며 새로운 상태 객체를 전달하기 위한 setter을 호출 상태 - 인터페이스로 상태별 메서드를 구현 - 이 메서드는 모든 상태에 대해 유효한 메서드이어야 하는데 그 이유는 상태에 따라 호출될 일이 없는 메서드들를 인터페이스로 구분하면 사이드 이펙트가 나올 가능성이 있기 때문이다. 구상 상태 - 상태별 클래스로 상태 인터페이스에 따른 메서드들을 자체적인 구현을 제공합니다. - 여러 상태에서 유사한 코드의 중복을 피하기 위해 어떤 공통 행동을 캡슐화하는 중간..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/omK0D/btskhLQtWFr/by71cgp77Jj342qEpw2vDk/img.png)
안녕하세요, HoonIOS입니다. :) 이번에는 패턴중에 하나인 상태패턴 공부한것에 대해 정리 할려고 합니다. 상태패턴의 정의에 대해 먼저 살펴보겠습니다. 상태패턴 정의 상태 패턴은 객체의 내부 상태가 변경 될때 해당 객체가 그 상태에 알맞는 행동을 할수 있도록 변경해주는게 행동 디자인 패턴입니다. 예를들어 어느 한 책을 출판한다고 했을때 출판하기 까지 초안, 검토, 출판 이렇게 세가지 형태로 크게 나눈다고 한다고 하면 각 상태를 객체에서 상태에 따라 분류하여 동작하도록 처리해주면 됩니다. 즉 아래와 같은 방식을 살펴 보겠습니다. 상태 패턴 방식 위 코드는 객체 내에서 자체적으로 상태에 따라 코드를 구현하는 대신 현재 상태를 나타내는 상태 객체중 하나에 대한 참조를 저장하고 모든 상태에 관련된 작업을 D..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/FKB96/btsjkadpy6O/FxvmfKHuKTv6w6wwe49KS0/img.png)
안녕하세요, HoonIOS입니다. :) 저번에 커맨드 패턴에 대해 구성 요소랑 커맨트 패턴의 장점에 대해 말씀 드렸습니다. 이번에는 구조 및 관련 코드에 대해 말씀 드리려고 합니다. 커맨드 패턴 구조 Client: Client에서 ConcreateCommand를 init하고 Receiver를 설정하는 역할 Reciever: Clelient에서 Receiver를 설정하고 Receiver 객체를 각 Command의 생성자로 전달하여 처리, 수신자 역할로 실제로 요청을 처리 ConcreateCommand: 각 Commadn 객체와 실행할 메서드를 연결시키는 역할 Command: 실행 요청에 대한 인터페이스로 각 필요한 작업들이 있고 execute(실행 메서드)가 포함 Invoker: Command 객체들을 관..
안녕하세요, HoonIOS입니다. :) 이번에 회사에서 특정 앱을 구현하게 됐는데 구조에 대해 고민을 하면서 여러 패턴에 대해 찾아보던 중 커맨드 패턴 (Command Pattern)이 구현 목적에 어울리는 패턴이라고 생각해서 해당 패턴에 대해 정리를 해보려고 합니다. 우선 요구 사항을 아래와 같습니다. 1. 각 테스트 케이스를 모듈화 할 수 있을 것 2. 테스트 케이스를 순서대로 처리할수 있는 로직에 맞는 로직 3. 테스트 케이스의 순서는 유동적으로 바뀔 수 있고 추가 및 삭제, 순서 변경이 될 수 있음 커맨드 패턴이란? 커맨드 패턴의 정의는 모든 정보가 포함된 독립 실행형 객체(캡슐화)로 변환하는 디자인 패턴입니다. 이 패턴은 대기열에 넣을수도 있고 실행을 취소할 수도 있습니다. 또, 커맨드를 필요한..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/3hSnQ/btq224ZKRoM/H1ln2SecURV7su6NMKOiy0/img.gif)
안녕하세요, HoonIOS입니다. :) 저번에는 텍스트 필드의 델리게이트에 대해 포스팅을 했습니다. boidevelop.tistory.com/65 [iOS] 텍스트필드 델리게이트 패턴 구현하기 ( 1 / 2 ) -HoonIOS 안녕하세요 HoonIOS입니다. :) 저번에는 델리게이트에 대해 알아봤습니다. boidevelop.tistory.com/64 [iOS] 델리게이트 패턴이란? - HoonIOS 안녕하세요 HoonIOS입니다. :) 이번에는 iOS의 하나의 디자인 패턴인.. boidevelop.tistory.com 이번에는 텍스트필드의 델리게이트 패턴을 통해 델리게이트 메서드를 한번 적용하는 예제를 만들어 보겠습니다. :) 텍스트 필드에 델리게이트 패턴 적용 텍스트 필드에 델리게이트 패턴을 적용해보겠..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bCgVDu/btq21e29fdS/7hcKWMzizdbqfcnxKCAank/img.png)
안녕하세요 HoonIOS입니다. :) 저번에는 델리게이트에 대해 알아봤습니다. boidevelop.tistory.com/64 [iOS] 델리게이트 패턴이란? - HoonIOS 안녕하세요 HoonIOS입니다. :) 이번에는 iOS의 하나의 디자인 패턴인 델리게이트 패턴에 대해 알아보려고 합니다. 우선 패턴에 대해 알아보겠습니다. 패턴이란? 객체지향 프로그래밍에서는 디자 boidevelop.tistory.com 이번에는 이 델리게이트의 대표적인 예인 텍스트 필드에 델리게이트 패턴을 적용시켜 보겠습니다. 텍스트필드 델리게이트 패턴 구현 기본적인 기능 ( 텍스트 필드 꾸미기, 텍스트 필드 UI 구현)과 같은 것은 직접 구현을 해주면 됩니다. 하지만...! 특정 문자열 입력 배제 시키기, 입력 가능한 길이 제한,..