2024-06-03|閱讀時間 ‧ 約 24 分鐘

※ 設計模式與程式架構(二)

    ※ TypeScript範例說明:

    interface ITest {
    test1: string
    test2: number

    print: (arg: string[]) => boolean
    }

    class Test implements ITest {
    public test1: string
    public test2: number

    constructor(test1: string, test2: number) {
    this.test1 = test1
    this.test2 = test2
    }

    print = (arg: string[]) => {
    console.log(this.test1, this.test2, arg)
    // return !!arg.length
    return Boolean(arg.length)
    }
    }

    const testIns = new Test("hello world", 123)
    console.info(testIns.print(["33"])) 

    ※ Interface介紹:

    • Interface 被稱作介面或是接口。
    • 描述結構:interface 是用來描述物件的結構,定義了哪些Property(屬性)和Method(方法)必須存在。
    • 不包含實作:interface 只描述屬性和方法,並不包含任何具體的實作細節。
    • 用於約定:interface 就像是一個契約,強制實現它的 class 必須按照這個契約來實現所有的Property(屬性)和Method(方法)。否則就會發生錯誤,無法正確編譯。

     簡單來說Interface 只做描述,不做動作。

    ※ Class介紹:

    • 實作細節:class 則是具體的實現,定義了物件的具體行為和狀態。它不僅描述了物件應該有什麼樣的屬性和方法,還包括這些方法的具體實現。
    • 實現 Interface:Class 使用 implements 關鍵字來指定要實作的介面(interface)。這意味著class 必須提供 interface 中定義的所有屬性和方法的具體實現。

    ※ Implements介紹:

    • implements 關鍵字用於類來實現介面(interface)。
    • 目的是確保類(Class)包含介面中所有定義的屬性和方法,否則 TypeScript 編譯器會報錯。

    ※ Public介紹:

    • 如果希望屬性或方法對所有使用者完全公開時使用 public 修飾符。
    • 預設值:Class 內描述的 Property(屬性) 預設是 Public。

    ※ Constructor介紹:

    • 用於在建立類的實例時初始化物件。
    • 每個類只能有一個構造函數(constructor)。

    ※ Print介紹:

    • 呼叫 print 方法來查看輸出和返回值。
    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.