일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 개발
- DesignPattern
- 아이폰프로그래밍
- SWIFT
- OOP
- 부스트코스
- 의존성
- 고차함수
- 협업
- 객체지향프로그래밍
- iOS프로그래밍
- protocol
- 개발자
- fp
- 함수형프로그래밍
- 문법
- 네이밍
- 디자인패턴
- Swfit
- interface
- POP
- 인터페이스
- 의도
- 클린소프트웨어
- CleanCode
- Solid
- 이름
- IOS
- 함수형패러다임
- 클린코드
- Today
- Total
목록OOP (12)
밤에 쓴 코드
OOP ) 상태 , 행동 , 식별자 객체지향 패러다임 지식을 추상화 하고 , 추상화한 지식을 객체내에 캡슐화 하여 복잡성을 관리하고 , 객체의 지식과 행동을 구조화 객체 하나의 단위로 인식가능한 사물이다. 행동 , 상태 , 식별자를 가지는 사물 현실의 문제를 해결하기위해서 소프트웨어 세계를 창조합니다. 하나의 문제를 해결하기위해선 여러개의 작은 동작들로 나눌 수 있습니다. 각각의 동작들은 책임을 가지는 객체가 해결하고 , 협력을 통해 문제를 해결합니다. 행동과 상태 행동을 수행하는 객체들이 행동의 결과를 결정하는데에는 과거의 행동의 이력이 연관을 가진다. 과거의 행동의 이력을 표현할 수 있는 효과적인 방법은 상태 로 표현하는 것이다. 과거의 행동이 상태를 변경하므로 상태는 행동의 결과에 의존한다 또 행동..
역할 , 책임 , 협력 객체 현실의 사물을 추상화 / 모방 ? 가상세계의 사물을 창조 객체간의 협력 protocol guest{ func order(menu : String){} } // 손님 역할 protocol Casher{ func takeOrder(menu : String, money : UInt){} func deliver(menu : String){} } // 캐셔 역할 protocol Barista{ func makeCoffee(menu : String) -> (Coffee){} } // 바리스타 역할 각각의 역할이 존재하고 그에 해당하는 책임이 있다. 하나의 문제를 해결하기 위해서는 여러 객체간의 협력이 필요하다. 역할은 외부에서 볼때는 역할이고 , 내부에서 볼때는 일종의 책임에 해당한다...
왜 ? 개발자는 소프트웨어에 세상을 표현한다. 게임으로 이해해도 좋을 것같다. 세상은 메모리공간이고 그 곳에 여러 생물/무생물 : 객체 들 을 만들어 내는 것은 개발자의 몫이다. 앞으로의 메모리 공간에는 수많은 종류의 객체들이 존재할 것이다 . 재사용성을 위해 클래스로 공통적인 속성과 동작을 정의해두고 , 각각의 객체들은 공통적인 속성과 동작은 가지고있으나 , 각기 내는 결과와 반환 값은 다를수있다 ex) 속성 - 무기는 모두 공격력을 가지고는 있으나 , 같은 공격력을 가지고 있지는 않다. 동작 - 동물은 모두 이동하나 , 고양이는 4족보행 , 사람은 직립보행을 한다. 클래스 의 구조 class 무기{ var 무기명:String var 공격력 :UInt init(무기명:String , 공격력:UInt){..
OOP - 객체지향 프로그래밍 중요하다. 근데 왜쓰는가 ? 왜 중요한가? , 반론이나 의문을 가져본 적이 있는지 싶다. OOP 객체를 이용하여 프로그래밍을 한다 . WHY? 우리는 많은 현실의 문제를 해결하길 원한다. 소프트웨어는 현실의 문제를 해결하기 위한 좋은 환경이다. 이제 우리는 현실의 문제를 소프트웨어 세상에 표현하고자 한다. 세상엔 많은 실체들이 존재한다. 이 것들을 모두 프로그래밍으로 녹여 내고 싶다. 어떻게 표현하는 것이 좋을까 ? 예시를 들어보자. 수 많은 사람들이 존재한다. 짱구 , 철수 , 영희 ... 이들은 공통적인 속성이 있다. 모두 몸무게 , 키 ,나이 , 이름 를 가지며 각각은 다를 수 있다. 또 공통된 동작을 한다. 걷고 , 말한다. 이 공통된 속성 과 동작은 각기 다른 결과..