Spring中的設計模式(一) 工廠模式

2021-09-24 20:39:08 字數 2395 閱讀 9679

**:

場景:以牛奶為例,有蒙牛、伊利、愛慕希等品牌。

public

inte***ce

milk

產品實現介面:

public

class

menniu

implements

milk

}

public

class

aimuxi

implements

milk

}

public

class

yili

implements

milk

}

1、簡單工廠

又叫做靜態工廠方法(staticfactory method)模式,它的實質是有乙個工廠類根據傳入的引數,動態的決定應該建立哪乙個產品類。

/*** 簡單工廠(小作坊式)

* created by zwz on 2018/8/20.

*/public

class

******factory

else

if( "蒙牛".equals(name))

else

if( "伊利".equals(name))

else}}

測試類:

public

class

test

}

特點:

從乙個方法中獲取多中物件。

缺點:

拓展性差,需要建立新的物件時,需要去修改工廠類方法,還需維護標識。

2、工廠方法

工廠方法提供乙個工廠介面,讓其實現類決定例項化那種產品,並建立對應的類,

首先創個工廠模型:

/*** 工廠模型

* created by zwz on 2018/8/20.

*/public

inte***ce

factory

多個工廠實現介面,每個工廠生產不同的產品:

public

class

aimuxifactory

implements

factory

}

public

class

menniufactory

implements

factory

}

public

class

yilifactory

implements

factory

}

測試類:

public

class

factorytest

}

優點

缺點

3、抽象工廠

抽象工廠,是spring中用的最為廣泛的一種設計模式

首先建立乙個抽象工廠類:

/*** 抽象工廠

* spring中用的最為廣泛的一種設計模式

* 為什麼不使用介面:抽象類可以儲存一些公共的邏輯,方便統一管理,易於拓展

* created by zwz on 2018/8/20.

*/public

abstract

class

abstractfactory

實現類:

public

class

milkfactory

extends

abstractfactory

@override

milk getyili

()

@override

milk getaimuxi

()

}

測試類:

public

class

abstractfactorytest

}

優點

缺點

spring中的設計模式(一)

在專案開發中,由a方先提供api介面,b方呼叫 此時a方將自己的實現類實現api介面 b方同時也編寫實現類實現api介面,但不需要真的實現介面中的邏輯,只需呼叫父介面中的方法即可 圖 這時暴露出來的只有介面api和 類b,b提供了其他物件呼叫a的 b裡面具有對實現類a的方法的控制權,可以控制他什麼時...

spring中的設計模式(一)

在專案開發中,由a方先提供api介面,b方呼叫 此時a方將自己的實現類實現api介面 b方同時也編寫實現類實現api介面,但不需要真的實現介面中的邏輯,只需呼叫父介面中的方法即可 圖 這時暴露出來的只有介面api和 類b,b提供了其他物件呼叫a的 b裡面具有對實現類a的方法的控制權,可以控制他什麼時...

工廠設計模式結合Spring開發

本文以簡單工廠模式為案例。在上網看的工廠模式的案例講解中,建立具體實現類一般是簡單new乙個出來。但是在實際開發中,一般都是結合spring來管理物件的。下面分享一種結合spring開發的工廠模式 業務場景 乙個傳送訊息的功能模板。有不同的傳送方式,如 站內信,簡訊,郵件等。先定義乙個傳送訊息的介面...