小A:“工廠方法模式涉及到哪些角色?”
大B:工廠方法模式的角色有:抽象工廠(Creator)角色、具體工廠(ConcreteCreator)角色、抽象產品(Product)角色、具體產品(ConcreteProduct)角色。
抽象工廠(Creator)角色:是工廠方法模式的核心,與應用程序無關。任何在模式中創建的對象的工廠類必須實現這個接口。
具體工廠(ConcreteCreator)角色:這是實現抽象工廠接口的具體工廠類,包含與應用程序密切相關的邏輯,並且受到應用程序調用以創建產品對象。
有兩個這樣的角色:BulbCreator與TubeCreator。
抽象產品(Product)角色:工廠方法模式所創建的對象的超類型,也就是產品對象的共同父類或共同擁有的接口。
具體產品(ConcreteProduct)角色:這個角色實現了抽象產品角色所定義的接口。某具體產品有專門的具體工廠創建,它們之間往往一一對應。
//產品Plant接口
//產品Fruit接口
//抽象工廠方法
//具體工廠方法
(本章完)