**:
場景:以牛奶為例,有蒙牛、伊利、愛慕希等品牌。
產品實現介面:
public
inte***ce
milk
public
class
menniu
implements
milk
}
public
class
aimuxi
implements
milk
}
1、簡單工廠
public
class
yili
implements
milk
}
又叫做靜態工廠方法(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開發的工廠模式 業務場景 乙個傳送訊息的功能模板。有不同的傳送方式,如 站內信,簡訊,郵件等。先定義乙個傳送訊息的介面...