객체 지향은 iPhone 앱 개발로 어떻게 도움이 되는가?

소개



요 전날,
BASIC에서 온 절차형 아저씨가 「절차형」 「함수형」 「객체 지향」에 대해 생각한다.
라는 제목으로 게시했습니다.
이 중,

swift로 iPhone 앱을 개발할 때는 객체 지향을 특별히 의식하지 않아도 마음껏 객체 지향의 혜택을 받고 있습니다.

라고 말했습니다.
이 글에서는 내가 실제로 App Store에 게시하는 앱에 대해 설명합니다.

간경변중증도 Child 분류



이것은 소화기 내과·외과의용의 앱*로 간경변중증도 Child 분류를 간단하게 산출할 수 있습니다.
2010년에 공개한 이래, 4만명 이상의 분들에게 다운로드해 주셨습니다.
총 빌리루빈이나 알부민 등의 값을 선택하면 Child 분류와 점수가 표시됩니다.
다음은 스크린샷과 소스 코드입니다.

import UIKit

class ViewController: UIViewController {

    @IBOutlet var bilirubin:UISegmentedControl!
    @IBOutlet var albumin:UISegmentedControl!
    @IBOutlet var pt:UISegmentedControl!
    @IBOutlet var fukusui:UISegmentedControl!
    @IBOutlet var nosho:UISegmentedControl!
    @IBOutlet var childIndex:UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func selectorChanged(){
        let b = bilirubin.selectedSegmentIndex + 1
        let a = albumin.selectedSegmentIndex + 1
        let p = pt.selectedSegmentIndex + 1
        let f = fukusui.selectedSegmentIndex + 1
        let n = nosho.selectedSegmentIndex + 1
        let childPoint = b + a + p + f + n
        var childGrade = "A"
        switch childPoint {
        case 5 ... 6:
            childGrade = "A"
        case 7 ... 9:
            childGrade = "B"
        case 10 ... 15:
            childGrade = "C"
        default:
            break
        }
        childIndex.text = "Child \(childGrade)  \(childPoint)点"
    }
}

불과 30행 부족의 코드입니다.
bilirubin, albumin, pt, fukusui, nosho 등은 UISegmentedControl 클래스의 인스턴스이고 childIndex는 UILabel 클래스의 인스턴스입니다.
우리 개발자는 UISegmentedControl 클래스나 UILabel 클래스의 내부 로직을 몰라도 사용할 수 있고(숨김), UISegmentedControl 클래스나 UILabel 클래스의 내부를 재기록하지 않습니다(캡슐화).

결론



클래스화된 UI 부품(오브젝트)을 조합하는 것으로, 저와 같은 아마 프로그래머에서도 iPhone 앱을 만들 수 있는 것은 오브젝트 지향의 혜택이라고 생각합니다.

* 의사를위한 응용 프로그램입니다.
간경변중증도 Child 분류·소화기암 진행도 분류

좋은 웹페이지 즐겨찾기