日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
六個Android開發(fā)者不可不知的設計模式

1 什么是設計模式

設計模式是一種可以重復使用的解決軟件工程問題的方案。與許多特定程序的解決方案不同,設計模式可以應用于許多不同的程序中。設計模式不是一個成品,而是一個可以應用于多種情況并隨時間改進的模板,是非常強大的軟件工程工具。使用經過驗證的原型可以提高開發(fā)速度,使用設計模式模板的開發(fā)人員可以提高編碼效率和最終產品的可讀性。

成都創(chuàng)新互聯(lián)公司自2013年起,是專業(yè)互聯(lián)網技術服務公司,擁有項目成都網站制作、網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元銀州做網站,已為上家服務,為銀州各地企業(yè)和個人服務,聯(lián)系電話:18982081108

2 模式#1 單例模式

單例模式是一種允許創(chuàng)建唯一實例并訪問該實例的類。它包含一個私有的靜態(tài)變量,可以容納該類的唯一實例。在需要限制類的實例化為一個對象時,單例模式通常很有用。通常在需要協(xié)調系統(tǒng)中操作的單個對象時使用單例模式。

3 單例類的屬性

  • 僅一個實例
  • 全局可訪問

4 制作單例類的規(guī)則

制作單例類遵循以下規(guī)則:

  • 私有構造函數(shù)
  • 類的靜態(tài)引用
  • 一個靜態(tài)方法
  • 全局可訪問的對象引用
  • 多線程一致性

5 單例示例

以下是Java中Singleton類的示例:

public class Singleton {

    private static Singleton instance = null;

    private Singleton() {
        
    }

    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}

以下是Kotlin中Singleton類的示例:

Object Singleton {
   init { println("Hello Singleton") }
}

6 模式#2 工廠模式

工廠模式是一種創(chuàng)建對象的設計模式,其名稱源于其類似于工廠的行為。在工廠模式中,工廠類負責控制對象的實例化邏輯。當需要創(chuàng)建多個具有相似行為的對象時,工廠模式非常有用。您可以使用工廠模式來創(chuàng)建對象,而無需指定具體的類。這使代碼更加靈活,進行修改和維護變得更輕松。

請看以下代碼以便更好地理解:

interface Currency {
    fun symbol(): String
    fun code(): String
}

enum class Country {
    UnitedState, Spain
}

class USDollar : Currency {
    override fun symbol(): String {
        return "$"
    }

    override fun code(): String {
        return "USD"
    }
}

class Euro : Currency {
    override fun symbol(): String {
        return "€"
    }

    override fun code(): String {
        return "EUR"
    }
}

object CurrencyFactory {

    fun currency(country: Country): Currency {
        return when (country) {
            Country.UnitedState -> {
                USDollar()
            }
            Country.Spain -> {
                Euro()
            }
        }
    }
}

7 模式#3 建造者模式

建造者模式旨在“將復雜對象的構建與其表示分離,以便相同的構建過程可以創(chuàng)建不同的表示形式。”它用于逐步構建復雜對象,最后一步將返回對象。

8 制作Builder類的規(guī)則

制作Builder類遵循以下規(guī)則:

  • 私有構造函數(shù)
  • 通常稱為Builder的內部類
  • 每個字段的函數(shù)設置字段值返回
  • 構建函數(shù)返回Main類的實例

以下是Kotlin中Builder類的示例:

class Hamburger private constructor(
    val cheese: Boolean,
    val beef: Boolean,
    val onions: Boolean
) {
    class Builder {
        private var cheese: Boolean = true
        private var beef: Boolean = true
        private var onions: Boolean = true

        fun cheese(value: Boolean) = apply { cheese = value }
        fun beef(value: Boolean) = apply { beef = value }
        fun onions(value: Boolean) = apply { onions = value }

        fun build() = Hamburger(cheese, beef, onions)
    }
}

9 模式#4 外觀模式

外觀模式提供一個更高級的接口,使一組其他接口更容易使用。它封裝了一組類的復雜性,并提供了一個更高級別的接口,以簡化對這些類的訪問。以下圖表更清楚地說明了這個想法。

interface BooksApi {
  @GET("books")
  fun listBooks(): Call>
}

Square的Retrofit是一種開源的安卓庫,可幫助您實現(xiàn)外觀模式。您可以創(chuàng)建一個接口,為客戶端提供API數(shù)據(jù)。

10 模式#5 依賴注入

依賴注入就像搬進一間家具齊全的公寓一樣,您需要的一切都已經在那里,不必等待家具送貨或遵循家具公司的指令指南來組裝它。

在軟件方面,依賴注入要求您提供任何所需的對象來實例化新對象。這個新對象不需要自己構建或自定義對象。

在安卓中,您可能會發(fā)現(xiàn)需要從應用程序的各個點訪問同一復雜對象,例如網絡客戶端、圖像加載器或用于本地存儲的SharedPreferences。為了方便訪問這些對象,您可以將它們注入到活動和片段中,并直接使用它們。這種方式稱為依賴注入,它允許您在應用程序中更容易地管理和共享對象,并提高了代碼的可重用性和測試可靠性。

以下示例展示了一個沒有使用依賴注入的Car類的代碼。在該示例中,Car類正在構建自己的Engine依賴項:

class Car {

    private val engine = Engine()

    fun start() {
        engine.start()
    }
}

fun main(args: Array) {
    val car = Car()
    car.start()
}

這種做法存在問題,因為Car類對Engine類有硬編碼的依賴關系,這將導致代碼難以維護和測試。如果需要更改Engine實現(xiàn)或使用不同的實現(xiàn),則需要修改Car類的代碼。這可能會導致代碼的重構和重新測試,并且可能會影響其他依賴于Car類的代碼。因此,使用依賴注入可以解決這個問題,并提高代碼的可重用性和可測試性。

使用依賴注入的代碼是什么樣子?代替每個Car實例在初始化時構建自己的Engine對象,它在構造函數(shù)中作為參數(shù)接收一個Engine對象:

class Car(private val engine: Engine) {
    fun start() {
        engine.start()
    }
}

fun main(args: Array) {
    val engine = Engine()
    val car = Car(engine)
    car.start()
}

11 模式#6 適配器模式

適配器模式是一種用于連接兩個不兼容接口之間的橋梁模式。

這種模式涉及一個單一的類,該類負責連接獨立或不兼容接口的功能。現(xiàn)實生活中的一個例子可能是一個讀卡器,它充當內存卡和筆記本電腦之間的適配器。您將記憶卡插入讀卡器,將讀卡器插入筆記本電腦,以便可以通過筆記本電腦讀取記憶卡。


分享名稱:六個Android開發(fā)者不可不知的設計模式
URL地址:http://www.dlmjj.cn/article/dpdghse.html