UML關(guān)系簡單介紹
UML簡單使用的介紹
創(chuàng)建型設(shè)計(jì)模式
Android設(shè)計(jì)模式-單例模式
Android設(shè)計(jì)模式-工廠模式
Android設(shè)計(jì)模式-抽象工廠模式
Android設(shè)計(jì)模式-建造者模式
Android設(shè)計(jì)模式-原型模式
結(jié)構(gòu)型設(shè)計(jì)模式
Android設(shè)計(jì)模式-代理模式
Android設(shè)計(jì)模式-裝飾模式
Android設(shè)計(jì)模式-適配器模式
Android設(shè)計(jì)模式-組合模式
Android設(shè)計(jì)模式-門面模式
Android設(shè)計(jì)模式-橋接模式
Android設(shè)計(jì)模式-享元模式
行為型設(shè)計(jì)模式
Android設(shè)計(jì)模式-策略模式
Android設(shè)計(jì)模式-命令模式
Android設(shè)計(jì)模式-責(zé)任鏈模式
Android設(shè)計(jì)模式-模版方法模式
Android設(shè)計(jì)模式-迭代器模式
Android設(shè)計(jì)模式-觀察者模式
Android設(shè)計(jì)模式-備忘錄模式
Android設(shè)計(jì)模式-中介者模式
Android設(shè)計(jì)模式-訪問者模式
Android設(shè)計(jì)模式-狀態(tài)模式
Android設(shè)計(jì)模式-解釋器模式
1.工廠模式定義
定義一個(gè)用于創(chuàng)建對象的接口,讓子類決定實(shí)例化哪個(gè)類。工廠模式使一個(gè)類的實(shí)例化延遲到其子類
2.工廠模式UML圖
角色介紹
- Product 抽象產(chǎn)品類俘陷,定義產(chǎn)品的共性
- ConcreteProduct 具體產(chǎn)品 繼承自Product
- Creator 抽象工廠類
- ConcreteCreator 具體工廠 繼承自Creator
3.簡單實(shí)現(xiàn)
3.1 抽象產(chǎn)品類
public abstract class Product {
public void m1(){
}
public abstract void m2();
}
3.2 具體產(chǎn)品
public class ProductA extends Product{
@Override
public void m2() {
System.out.println("我是產(chǎn)品A");
}
}
public class ProductB extends Product {
@Override
public void m2() {
System.out.println("我是產(chǎn)品B");
}
}
3.3 抽象工廠
public abstract class Factory {
public abstract <T extends Product> T createProduct(Class<T> tClass);
}
3.4 具體工廠
public class ConcreteFactory extends Factory {
@Override
public <T extends Product> T createProduct(Class<T> tClass) {
Product product=null;
try {
product= (Product) Class.forName(tClass.getName()).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return (T) product;
}
}
3.5 場景調(diào)用
public class MyClass {
public static void main(String args[]) {
Factory factory=new ConcreteFactory();
Product productA=factory.createProduct(ProductA.class);
Product productB=factory.createProduct(ProductB.class);
if (null!=productA){
productA.m2();
}
if (null!=productB){
productB.m2();
}
}
}
3.6 運(yùn)行結(jié)果打印
我是產(chǎn)品A
我是產(chǎn)品B
4.總結(jié)
4.1 優(yōu)點(diǎn)
- 良好的封裝行,代碼結(jié)構(gòu)清晰
- 擴(kuò)展性很好掉伏,增加產(chǎn)品的時(shí)候轰异,只需要具體修改某個(gè)工廠類或者再擴(kuò)展一個(gè)工廠類即可
- 屏蔽產(chǎn)品類憔古,產(chǎn)品類的實(shí)現(xiàn)如何變化仆邓,調(diào)用者都不用關(guān)心鲜滩,只需要關(guān)心產(chǎn)品接口是否改變
4.2使用場景
在所有需要生成對象的地方都可以使用伴鳖,但是是否增加工廠來生產(chǎn)對象,就要自己考慮了绒北。黎侈。察署。
不對的地方歡迎大家指出