第 9 章
認識結構、 專案組織與程式文件

Most good programmers do programming not because they expect to get paid or adulation by the public, but because it is fun to program.

- Linus Torvalds

如果你是從頭開始與我們一起進行本書所有專案的學習,你已經向前邁進一大步,目前你應該能夠使用 SwiftUI 來建立以清單視圖 為主的 iOS App 了。我們將進一步增強 FoodPin App 並改善其細節視圖及加入更多功能,還有,我們會深入 iOS 的開發必學習其他 API,我會介紹物件導向程式設計(Object Oriented Programming)的基礎,並教導你如何撰寫更佳的程式碼。

不要被「物件導向程式設計」或簡稱「OOP」的專有名詞所嚇到,這並不是新的程式語言,而是一種程式觀念。不像坊間一些程式設計的書籍一樣,一開始就介紹 OOP 的觀念,我在規劃本書內容時便打算在比較後面的章節才來介紹它,我想讓事情保持簡單,所以先介紹如何建立一個 App。我可不想讓一些技術術語或觀念嚇跑了你,而使你放棄學習建立 App。不過,我想是時候來介紹 OOP 觀念了。如果經過了8 個章節之後,而你還在閱讀本書,我相信你已經下定決心要學好 iOS 程式,並且提升自己的程式設計技術到更進階的階段了。

好的,我們開始吧 !

物件導向程式設計的基礎理論

你已經使用過 struct 建立你的第一支 App,不過我尚未說明過 struct 是什麼。進一步談到 struct 之前,我先簡短地介紹一下物件導向程式設計。

和 Objective-C 及許多其他程式語言一樣,Swift 是一種物件導向程式設計(OOP)語言。OOP 是一種以物件的組成來建立軟體應用的方式。換句話說,你在 App 中已經寫過的大多數程式碼,都是以某些方式來處理某種物件。你曾使用過的 ViewButtonList物件,都是 SwiftUI 框架所帶來的範例物件。你不只可以使用內建物件,你也在專案中建立了你自己的物件,如 RestaurantListView

那麼為何需要 OOP 呢?一個非常重要的理由是,我們需要把一個複雜的軟體分解成許多小部分(或者說是建立模塊),以便能夠輕易地開發及維護。這裡所指的小部分就是物件,每一個物件都有它的任務,物件間相互協調來讓軟體能順利運作,這就是 OOP 的基本觀念。

在物件導向程式設計中,一個物件具有二個特徵:「屬性」(Property )與「功能性」(Functionality )。我們以一個真實世界的物件來說明—汽車。一台汽車有自己的顏色、型號、最快速度、製造商等,這些都是汽車的屬性。就功能性術語而言,一台汽車應該提供基本的功能,如加速、剎車及駕駛等。

軟體物件與真實世界物件很相似。我們回到 iOS 世界中,來看一下 Button 物件的屬性及功能性:

  • 屬性(Properties) – 背景、尺寸、顏色及字型就是 Button 的屬性。
  • 功能性(Functionalities) –當按鈕被點擊時,它會判別點擊事件。偵測觸控的能力是 Button 的眾多功能之一。

在前面的章節中,你總是會碰到一個術語—「方法」(Method )。在 Swift 中,我們建立方法來提供物件的功能性。通常一個方法對應一個物件的特定功能。


本文摘自《iOS 17 App程式設計實戰心法》(SwiftUI)》一書。如果你想更深入學習Swift程式設計和下載完整程式碼,你可以從 AppCoda網站 購買完整電子版

results matching ""

    No results matching ""