設計模式之工廠方法模式

2021-10-07 12:28:08 字數 2143 閱讀 3252

public

inte***ce

carpublic

class

bmwimplements

car@override

public

void

buy()}

public

class

benimplements

car@override

public

void

buy()}

public

inte***ce

ca***ctory

public

class

bwmfactory

implements

ca***ctory

}public

class

benfactory

implements

ca***ctory

}public

class

}

這種方式比較常見,需要哪乙個產品就建立相應的工廠生產相應的產品,有時候也可以利用反射的方式更簡潔地來生產具體產品物件,此時,需要在工廠方法的引數列表中傳入乙個class類來決定是哪乙個產品類。

public

inte***ce

carpublic

class

bmwimplements

car@override

public

void

buy()}

public

class

benimplements

car@override

public

void

buy()}

public

inte***ce

ca***ctory

public

class

factoryimpl

implements

ca***ctory

catch

(classnotfoundexception ex)

catch

(instantiationexception ex)

catch

(illegalacces***ception ex)

return

(t) car;}}

public

class

}

當我們的工廠生產的不只是一種產品的時候,就i要考慮將工廠也提取出乙個抽象類——抽象工廠模式。例如,benfactory在生產賓士車的時候,還要考慮到輪胎的型號(假設有a和b兩種型號的輪胎),那就要將benfactory提公升為抽象類,派生出兩種不同的工廠類,一種工廠類專門生產a型號輪胎的賓士車,一種工廠類專門生產b型號輪胎的賓士車。

public

inte***ce

itire

public

inte***ce

iengine

public

class

normaltire

implements

itire

}public

class

suvtire

implements

itire

}public

class

aengine

implements

iengine

}public

class

bengine

implements

iengine

}public

inte***ce

ca***ctory

public

class

afactory

implements

ca***ctory

@override

public iengine createengine()

}public

class

bfactory

implements

ca***ctory

@override

public iengine createengine()

}

設計模式 工廠模式之工廠方法模式

工廠方法模式是指定義乙個建立物件的介面,然後實現這個介面的工廠來決定建立什麼樣的例項。工廠方法讓類的例項推遲到子類中進行。在這個模式中,只關心需要建立的是什麼工廠,不需要關心建立的細節。而且新加入的產品符合開閉原則。1 建立支付介面,裡面定義抽象的支付方法。package com.gupao.vip...

設計模式之工廠方法模式

package com.csair.design.pattern 工廠方法,有抽象基類,每個子類生產乙個具體物件,與抽象工廠的關係是,抽象工廠生產多個產品 產品有某種內在聯絡 工廠方法只生產乙個物件 author ppt public class factorymethod public stati...

設計模式之工廠方法模式

在介紹工廠方法模式之前,先來介紹一下簡單工廠。什麼是簡單工廠?在類中,難免要例項化一些類,那麼我們把這些類的例項化抽離出來封裝成乙個工廠類,工廠類提供乙個公共的靜態或非靜態的方法來返回其他物件所需要的物件。這樣做的目的就是將物件的例項化與邏輯 分開,提高 的復用能力。這就是簡單工廠。public a...