작성
·
233
1
class TiltShiftOperation: Operation {
var inputImage: UIImage?
var outputImage: UIImage?
override func main() {
if inputImage == .none, // 인풋이미지가 없으면,
let dependencyImageProvider = dependencies
.filter({ $0 is ImageLoadOperation})
.first as? ImageLoadOperation { // 프로토콜이 아닌 직접적으로 Operation꺼내기
inputImage = dependencyImageProvider.outputImage
}
// 실제 작업
outputImage = tiltShift(image: inputImage)
}
}
답변 1
1
안녕하세요! 록원 님.
모듈화의 장점을 위해서 프로토콜을 채택해서, 프로토콜을 통해 전달하도록 만든 것이지요. ^^
해당 프로토콜을, 채택한 모든 타입에서는 이미지 전달이 가능해지니까요!
만약에, 모듈화로 굳이 만들 필요가 없다면.. 작업 자체도 여러개로 나눌 필요 없이
하나로 설계했을 테니까요 :)
어쨌든. 프로토콜로 만든다면 ImageLoadOperation 클래스가 아닌 다른 타입이 존재한다고 하더라도
이미지 전달이 가능해지니..장점이 훨씬 커질 것으로 보입니다...^^
감사합니다. :)
키워드를 잘못 잡고있었네요. 애초에 작업을 나누는 것도 모듈화를 위한 것이었는데!
답변 감사드립니다!