객체 지향 프로그래밍 입문

객체 지향 프로그래밍 입문

(25개의 수강평)

449명의 수강생
19,800원
지식공유자 · 최범균
11회 수업 · 총 2시간 27분 수업
평생 무제한 시청
수료증 발급 강의
수강 난이도 '입문'
최범균의 다른 강의
연관 로드맵
아직 다른 강의가 없어요 ㅠㅠ
연관 로드맵이 없어요 ㅠㅠ
maxeasy2 프로필

강의자료를 받아볼수 있나요? maxeasy2 2달 전

좋은 강의 만들어주셔서 잘들었습니다

근데 강의자료는 혹시 받아볼수있을까요?

출력해서 보면서 다시한번 정리를 하고자합니다.

2
유아밍 (탈퇴) 프로필

연습에 대한 구체적인 코드가 맞는지 리뷰 부탁드려도 될까요 :)? 유아밍 (탈퇴) 2018.08.08

안녕하세요.

DIP까지 다 듣게 되었습니다. 좋은 강의를 이렇게 올려주셔서 너무 감사합니다. 다만, 마지막 연습에 대한 구체적인 코드가 없어서 작성하게 되었습니다:)

제가 작성한 코드가 제대로 이해한게 맞는지 확인 부탁드려도 될까요?

// 고수준 모듈

class ProductDataService {

private var productRepository: ProductRepository?

private var productRecommander: ProductRecommander?

private var popularProductService: PopularProductService?

// 직접 생성x

// init() {

// self.productRepository = DBProductRepository()

// self.productRecommander = DaaraRecommnder()

// self.popularProductService = ErpPopularProductService()

// }

init(_ productRepository: ProductRepository, _ productRecommander: ProductRecommander, _ popularProductService: PopularProductService) {

self.productRepository = productRepository

self.productRecommander = productRecommander

self.popularProductService = popularProductService

}

func getDetailInfo() {

productRepository?.fetchDetailInfo()

}

func recommandItem() {

productRecommander?.fetchItems()

}

func getTopItem() {

popularProductService?.fetchTopItem()

}

}

// 하위 기능을 추상화한 타입 1

protocol ProductRepository {

func fetchDetailInfo()

}

// 하위 기능을 추상화한 타입 2

protocol ProductRecommander {

func fetchItems()

}

// 하위 기능을 추상화한 타입 3

protocol PopularProductService {

func fetchTopItem()

}

// 저수준 모듈

class DBProductRepository: ProductRepository {

func fetchDetailInfo() {

// ...

}

}

class DaaraRecommnder: ProductRecommander {

func fetchItems() {

// ...

}

}

class ErpPopularProductService: PopularProductService {

func fetchTopItem() {

// ...

}

}

3
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스