전체 글 (28) 썸네일형 리스트형 Mediator 패턴 1. Mediator 패턴의 필요성 예를 들어 네비게이션 버튼에 따라 목록/사진첩을 보여줘야 한다고 가정하자. 이 경우에 목록을 클릭 했을 때는 사진첩을 가리고 목록에 보여줄 데이터를 받아와서 보여준다 사진첩의 경우엔 목록을 가리고 사진을 서버에서 가져와 보여주게 된다.. 코드로 보게 되면 아래와 같다. class ModeSwitch { var mode : Mode = Mode.LIST var listView = ListView() val galleryView = GalleryView() val dataDownloader = DataDownloader() fun toggleMode(){ mode = if(mode==Mode.LIST){ Mode.GALLERY }else{ Mode.LIST } listVi.. DI (Dependency Injection/의존성 주입) 1. 의존성이란? class CarFactory{ fun makeCar(){} } class OrderManager(_carFactory : CarFactory){ val carFactory = _carFactory fun orderCar(){ carFactory.makeCar() } } val orderManager = OrderManager(CarFactory()) orderManager.orderCar() 위의 예제를 참고해보자. Dealer 클래스 내부에서는 OrderManager 클래스의 객체를 생성하여 사용한다. 이 경우 Dealer 클래스는 OrderManager 클래스가 없으면 내부 코드를 실행할 수 없음을 뜻하고 컴파일이 안된다는 것을 의미한다. 이는 곧 Dealer - OrderMana.. [kotlin/코틀린] 코루틴 (Coroutine) 목차 1. CoroutineScope 2. CoroutineContext 3. Dispatcher 4. lauch, async, job, deferred 5. runBlocking 1. CoroutineScope 1-1) CoroutineScope란? 코루틴의 범위, 코루틴 블록( 하나 또는 그 이상 )을 제어할 수 있는 단위 1-2) 범위 val job = CoroutineScope(Dispatchers.Main).launch { CoroutineScope(Dispatchers.Default).launch {} } job.cancel() 코루틴 내부에 또 다른 코루틴을 만들게 되면 외부와 내부의 코루틴 각각의 제어 범위는 다르다. 즉, 외부 코루틴의 job을 받아 cancel()을 하더라도 내부 코루틴.. 이전 1 2 3 4 5 6 ··· 10 다음