Created
February 14, 2020 22:34
-
-
Save Wassmd/1a39cbb98c6c78760d79805687ed31a3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
class BaseViewModel { | |
let service: String | |
init(service: String) { | |
self.service = service | |
} | |
func baseVieModelFunction() { | |
print("BaseViewModel") | |
} | |
} | |
class CameraViewModel: BaseViewModel { | |
override func baseVieModelFunction() { | |
super.baseVieModelFunction() | |
print("CameraViewModel") | |
} | |
func cameraViewModelOwn() { | |
print("CameraViewModelOwnFun") | |
} | |
} | |
class PhoneViewModel: BaseViewModel { | |
override func baseVieModelFunction() { | |
print("Phone baseFunction") | |
} | |
func PhoneViewModelOwnFunc() { | |
print("PhoneViewModelOwnFun") | |
} | |
} | |
class BaseController<T: BaseViewModel> { | |
let viewModel: T | |
init(viewModel: T) { | |
self.viewModel = viewModel | |
} | |
func baseFunction() { | |
print("base Function") | |
} | |
} | |
class CameraController: BaseController<CameraViewModel> { | |
init(cameraViewModel: CameraViewModel) { | |
super.init(viewModel: cameraViewModel) | |
} | |
override func baseFunction() { | |
super.baseFunction() | |
print("Camera baseFunction") | |
} | |
} | |
class PhoneController: BaseController<BaseViewModel> { | |
init(phoneViewModel: PhoneViewModel) { | |
super.init(viewModel: phoneViewModel) | |
} | |
override func baseFunction() { | |
print("Phone baseFunction") | |
} | |
} | |
let cameraController = CameraController(cameraViewModel: CameraViewModel(service: "Camera Service")) | |
cameraController.baseFunction() | |
cameraController.viewModel.cameraViewModelOwn() | |
cameraController.viewModel.baseVieModelFunction() | |
let phone = PhoneController(phoneViewModel: PhoneViewModel(service: "Phone service")) | |
phone.baseFunction() | |
phone.viewModel.baseVieModelFunction() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment