【Kotlin 入門指南】Object 實體化單例模式(Singleton)範例

更新於 發佈於 閱讀時間約 4 分鐘
【Kotlin 入門指南】系列文章目錄:https://bit.ly/3t8awwL
Kotlin 線上課程教學影片:https://bit.ly/3qJ5a5Q

Object 實體化單例模式

在 Kotlin 程式語言中 Object 實體化單例模式,它確保一個類別只有一個唯一的實例。在 Kotlin 程式語言中,你可以使用 object 這個關鍵字來實現單例模式。

Object 實體化單例模式(Singleton)範例

object MySingleton {
init {
// 初始化程式碼,你可以在這裡初始化單例物件
}

fun doSomething() {
// 單例物件的功能函數
// 在這裡定義你單例物件的行為
}
}

在這個範例中,object MySingleton 創建了一個名為 MySingleton 的單例物件。裡面的 init 塊可以用來初始化單例,你可以在其中撰寫初始化程式碼。doSomething() 函數則代表了這個單例物件的某個功能或行為,你可以在這裡定義單例的操作。

要使用這個單例物件,只需直接呼叫它的函數即可,無需實例化:

MySingleton.doSomething()

這樣就可以直接存取 MySingletondoSomething() 函數,因為它是一個單例物件,而不需要建立額外的實例。

單例模式在程式設計中扮演著重要的角色,它確保某些類別在整個程式執行期間只有一個實例存在。Object 實體化提供了一種簡單且安全的方法來實作這種模式,同時保證了程式碼的可讀性和可維護性。

無論是管理資源、控制特定類別的存在數量,還是處理共享資料,單例模式都可以提供一個穩固且可靠的解決方案。透過 Kotlin 的 Object 實體化單例模式,你能夠更加方便地管理這樣的設計模式。

Singleton 單例模式,解決實體化不同物件問題驗證

object MyObject {
init {
println("MyObject init ...")
}

fun myFun() {
println("MyObject myFun ...")
}
}

fun main(){
println(MyObject)//MyClass@7c75222b
println(MyObject)//MyClass@7c75222b
}

在這個範例中,我們使用了 Singleton 單例模式來處理物件實體化的問題,我們可以看到,無論我們呼叫 MyObject 多少次,所得到的結果 MyObject@xxx 都是相同的。這表示著我們確實透過 object 修飾詞,成功達到了單例模式,解決了物件實體化的問題。

不過,需要注意的是,使用 object 修飾詞會使得所有的方法和變數成為靜態的。另外,特別要提及的是,object 不需要建立建構子來進行初始化,因此不需要在後面加上小括號 ()。換句話說,使用 object 修飾詞時,你可以將其想像成一個已經被實體化的類別,可以直接使用。

avatar-img
13會員
259內容數
哈囉!歡迎光臨我的沙龍!我是 KT,一位對應用程式開發充滿熱情的開發者。在這個專屬空間,我將與您分享我在應用開發領域的深入學習心得和豐富的實戰經驗。如果您對應用程式開發技術同樣充滿好奇,渴望不斷探索新知,歡迎成為我們的會員,一起在應用程式開發的旅途上,探索更深層次的技術世界,享受學習的樂趣。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
HKT實驗室 的其他內容
Object 宣告式,它允許你在宣告同時創建該類別的單一實例。這個實例是在第一次被訪問時被創建,之後該實例的引用將被重複使用。這樣的設計模式常被稱為「單例模式」,能確保在程式運行中只存在一個特定類別的單一實例。
Object 表達式是一種在需要時立即建立匿名內部類別的方法。它允許我們直接在程式碼中創建一個無需命名的物件,同時可以實作介面、擴展其他類別,或是建立特定型別的物件。沒有宣告 Object 名字 ,匿名並繼承特定類別或介面。
Companion Object(伴生物件),它允許在類別內建立一個專屬的物件,這個物件與該類別相關聯,可用來存取該類別的屬性和函數。透過 Companion Object,你能夠實現類似於 Java 中的靜態成員的功能。
繼承是物件導向程式設計中一個重要的概念,它允許你建立一個新的類別,這個類別可以繼承另一個已存在的類別的特性和行為。在 Kotlin 程式語言中,繼承可以幫助你建立出更具結構化和可維護性的程式碼。
在 Kotlin 程式語言中,Any 類別是所有其他類別的超類別,也就是說,所有的類別都直接或間接地繼承 Any 類別。這使得 Any 成為 Kotlin 物件繼承體系的根源。
在 Kotlin 程式語言中,可見性修飾關鍵字(Visibility Modifiers)用來控制類別、物件、介面、函數和屬性的可見範圍。可見性修飾關鍵字扮演著極其重要的角色,它們確定了程式碼中各元素的可見範圍,從而影響了程式的結構、安全性以及擴展性。了解這些修飾關鍵字的作用,將有助於更好地掌握程式
Object 宣告式,它允許你在宣告同時創建該類別的單一實例。這個實例是在第一次被訪問時被創建,之後該實例的引用將被重複使用。這樣的設計模式常被稱為「單例模式」,能確保在程式運行中只存在一個特定類別的單一實例。
Object 表達式是一種在需要時立即建立匿名內部類別的方法。它允許我們直接在程式碼中創建一個無需命名的物件,同時可以實作介面、擴展其他類別,或是建立特定型別的物件。沒有宣告 Object 名字 ,匿名並繼承特定類別或介面。
Companion Object(伴生物件),它允許在類別內建立一個專屬的物件,這個物件與該類別相關聯,可用來存取該類別的屬性和函數。透過 Companion Object,你能夠實現類似於 Java 中的靜態成員的功能。
繼承是物件導向程式設計中一個重要的概念,它允許你建立一個新的類別,這個類別可以繼承另一個已存在的類別的特性和行為。在 Kotlin 程式語言中,繼承可以幫助你建立出更具結構化和可維護性的程式碼。
在 Kotlin 程式語言中,Any 類別是所有其他類別的超類別,也就是說,所有的類別都直接或間接地繼承 Any 類別。這使得 Any 成為 Kotlin 物件繼承體系的根源。
在 Kotlin 程式語言中,可見性修飾關鍵字(Visibility Modifiers)用來控制類別、物件、介面、函數和屬性的可見範圍。可見性修飾關鍵字扮演著極其重要的角色,它們確定了程式碼中各元素的可見範圍,從而影響了程式的結構、安全性以及擴展性。了解這些修飾關鍵字的作用,將有助於更好地掌握程式
你可能也想看
Google News 追蹤
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本章節是Java入門的第八天,主要介紹物件導向的概念。這包括了類別、建構子、存取修飾子、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、Lambda表達式、泛型和反射等主題。每個主題都配有相關的程式碼範例,以協助讀者更好地理解這些概念。
Thumbnail
本章節旨在教導讀者如何在 Kotlin 中引入套件。將會涵蓋如何引用第三方套件,如何引用自定義模組,以及如何創建和引用自定義套件。此外,還會列出一些常用的套件,以供讀者參考。
Thumbnail
本章節的目的是介紹 Kotlin 中的物件導向概念。這包括了類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型以及反射等概念。每一個概念都會透過範例程式碼來解釋其功能和用法。
Thumbnail
這章節的目的是介紹 Kotlin 語言中函數的基本用法和概念,包括函數的聲明、使用、參數和返回值等。通過學習這章節,讀者可以熟練掌握如何在 Kotlin 中定義和使用函數,來解決各種問題。
Thumbnail
本章節的目的是介紹 Kotlin 的各種資料型別。包括內建型別如基本數值型別、字串型別和布林型別等,以及如何進行型別轉換。此外,也介紹了如何定義自訂型別(類)和元組型別,以及 Kotlin 提供的集合型別,例如列表(List)、集合(Set)和映射(Map)以及陣列(Array)。
Thumbnail
本文總結和介紹了Kotlin的基本語法、註解和變數的使用,透過實例進行講解,以幫助讀者更好地理解和快速上手Kotlin語言。
Thumbnail
這個章節的目的是為了介紹Kotlin這種程式語言,包含它的特性、應用領域、使用者,以及相關的學習資源和工具。透過這篇文章,讀者可以了解到Kotlin的基礎知識,並開始學習和使用它。
Thumbnail
這個章節主要介紹了Swift程式語言中物件導向程式設計的基本概念,包括類別、建構子、公開、私有、受保護等等的概念。同時,也介紹了繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射等進階特性。
※ 單例模式介紹 ※ 定義:單例模式是一種設計模式,確保一個class(類)只有一個實例,並提供一個存取它的全域存取點。無論如何取值,皆只對這個實例取值。 ※ 目的:保證一個類別只會產生一個物件,而且提供存取該物件的統一方法。 ※ 講解:單例模式確保一個類無論怎麼 new 或 get,都只能拿
※ Object(物件) & Constructor Function(建構式函式) Object(物件)是什麼? 物件是一種「可以將資料、程式碼包含在其中」的資料結構。 Object(物件)的兩種創造方式: 匿名物件:直接使用"{}"。沒有特別的名字,直接從Object中繼承過來的一個物件
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本章節是Java入門的第八天,主要介紹物件導向的概念。這包括了類別、建構子、存取修飾子、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、Lambda表達式、泛型和反射等主題。每個主題都配有相關的程式碼範例,以協助讀者更好地理解這些概念。
Thumbnail
本章節旨在教導讀者如何在 Kotlin 中引入套件。將會涵蓋如何引用第三方套件,如何引用自定義模組,以及如何創建和引用自定義套件。此外,還會列出一些常用的套件,以供讀者參考。
Thumbnail
本章節的目的是介紹 Kotlin 中的物件導向概念。這包括了類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型以及反射等概念。每一個概念都會透過範例程式碼來解釋其功能和用法。
Thumbnail
這章節的目的是介紹 Kotlin 語言中函數的基本用法和概念,包括函數的聲明、使用、參數和返回值等。通過學習這章節,讀者可以熟練掌握如何在 Kotlin 中定義和使用函數,來解決各種問題。
Thumbnail
本章節的目的是介紹 Kotlin 的各種資料型別。包括內建型別如基本數值型別、字串型別和布林型別等,以及如何進行型別轉換。此外,也介紹了如何定義自訂型別(類)和元組型別,以及 Kotlin 提供的集合型別,例如列表(List)、集合(Set)和映射(Map)以及陣列(Array)。
Thumbnail
本文總結和介紹了Kotlin的基本語法、註解和變數的使用,透過實例進行講解,以幫助讀者更好地理解和快速上手Kotlin語言。
Thumbnail
這個章節的目的是為了介紹Kotlin這種程式語言,包含它的特性、應用領域、使用者,以及相關的學習資源和工具。透過這篇文章,讀者可以了解到Kotlin的基礎知識,並開始學習和使用它。
Thumbnail
這個章節主要介紹了Swift程式語言中物件導向程式設計的基本概念,包括類別、建構子、公開、私有、受保護等等的概念。同時,也介紹了繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射等進階特性。
※ 單例模式介紹 ※ 定義:單例模式是一種設計模式,確保一個class(類)只有一個實例,並提供一個存取它的全域存取點。無論如何取值,皆只對這個實例取值。 ※ 目的:保證一個類別只會產生一個物件,而且提供存取該物件的統一方法。 ※ 講解:單例模式確保一個類無論怎麼 new 或 get,都只能拿
※ Object(物件) & Constructor Function(建構式函式) Object(物件)是什麼? 物件是一種「可以將資料、程式碼包含在其中」的資料結構。 Object(物件)的兩種創造方式: 匿名物件:直接使用"{}"。沒有特別的名字,直接從Object中繼承過來的一個物件