根據引數由工廠類來建立物件
/**
* 簡單工廠
* 目的:根據引數獲取物件
*/public class ******factorydp
//抽象產品
public inte***ce product
//具體產品:producta
static class concreteproduct1 implements product
}//具體產品:productb
static class concreteproduct2 implements product
}public static class ******factory
return null;}}
void test()
}
解決簡單工廠不能動態擴充套件實現類(開閉原則)
/**
* 工廠方法
* 單個工廠提供單個實現類,方便擴充套件更多實現類
* 目的:優化簡單工廠不好擴充套件新的類。這裡只需要新增工廠類既能擴充套件
*/public class factorymethoddp
//具體產品1:實現抽象產品中的抽象方法
class concreteproduct1 implements product
}//具體產品2:實現抽象產品中的抽象方法
class concreteproduct2 implements product
}//抽象工廠:提供了廠品的生成方法
inte***ce abstractfactory
//具體工廠1:實現了廠品的生成方法
class concretefactory1 implements abstractfactory
}//具體工廠2:實現了廠品的生成方法
class concretefactory2 implements abstractfactory
}void test()
}
解決工廠方法單個工廠不能同時建立多個不同的實現類
/**
* 抽象工廠
* 工廠可以產生多個不同物件,實現物件可以擴充套件,工廠類也可以動態組裝
*/public class abstractfactorydp
class aimpl1 implements producta
}class aimpl2 implements producta
}inte***ce productb
class bimpl1 implements productb
}class bimpl2 implements productb
}inte***ce abstractproductfactory
class productfactoryimpla implements abstractproductfactory
@override
public productb createb()
}class productfactoryimplb implements abstractproductfactory
@override
public productb createb()
}void test()
}
簡單工廠,工廠方法,抽象工廠
簡單工廠,工廠方法,抽象工廠都屬於設計模式中的建立型模式。其主要功能都是幫助我們把物件的例項化部分抽取了出來,優化了系統的架構,並且增強了系統的擴充套件性。本文是本人對這三種模式學習後的乙個小結以及對他們之間的區別的理解。簡單工廠 簡單工廠模式的工廠類一般是使用靜態方法,通過接收的引數的不同來返回不...
簡單工廠 工廠方法 抽象工廠
簡單工廠 乙個工廠類 根據傳入的參量決定建立出哪一種產品類的例項 直接乙個工廠類,內部通過 swith operator add類實現該介面 adddao implements dao dao的實現類 客戶端 dao dao new adddao dao.createoper 產生物件 這樣如果需要...
簡單工廠 工廠方法 抽象工廠
一 簡單工廠 factory 集中管理物件的產生,業務 只需要呼叫相應的方法,傳入不同的引數區分物件,就能得到想要的物件了 把業務 和對應的物件解耦 建立乙個抽象類 public abstract class cellphone public abstract void show 建立實現抽象類的實...