抽象工廠模式(三)

2021-07-14 09:03:57 字數 4002 閱讀 4252

先來看一下圖

分別來看一下相應的**,抽象工廠類:

package com.fanyafeng.abstractfactory.abfactory;

import com.fanyafeng.abstractfactory.mobilephonefactory.mobilephone;

import com.fanyafeng.abstractfactory.v***ctory.vr;

/** * created by fanyafeng on 16/7/1.

*/public abstract class abstractfactory

抽象工廠建造者

package com.fanyafeng.abstractfactory.abfactory;

import com.fanyafeng.abstractfactory.mobilephonefactory.mobilephonefactory;

import com.fanyafeng.abstractfactory.v***ctory.v***ctory;

/** * created by fanyafeng on 16/7/1.

*/public class factoryproducter }}

再分別看mobiel和vr的介面宣告

package com.fanyafeng.abstractfactory.mobilephonefactory;

/** * created by fanyafeng on 16/7/1.

*/public inte***ce mobilephone

package com.fanyafeng.abstractfactory.v***ctory;

/** * created by fanyafeng on 16/7/1.

*/public inte***ce vr

這兩個的工廠

package com.fanyafeng.abstractfactory.mobilephonefactory;

import com.fanyafeng.abstractfactory.abfactory.abstractfactory;

import com.fanyafeng.abstractfactory.mobilephone.htc;

import com.fanyafeng.abstractfactory.mobilephone.iphone;

import com.fanyafeng.abstractfactory.mobilephone.mi;

import com.fanyafeng.abstractfactory.v***ctory.vr;

/** * created by fanyafeng on 16/7/1.

*/public class mobilephonefactory extends abstractfactory

}@override

public vr getvr(string vr)

}

package com.fanyafeng.abstractfactory.v***ctory;

import com.fanyafeng.abstractfactory.abfactory.abstractfactory;

import com.fanyafeng.abstractfactory.mobilephonefactory.mobilephone;

import com.fanyafeng.abstractfactory.vr.dapeng;

import com.fanyafeng.abstractfactory.vr.headset;

/** * created by fanyafeng on 16/7/1.

*/public class v***ctory extends abstractfactory

@override

public vr getvr(string vr) }}

剩下的是具體的建造物件

package com.fanyafeng.abstractfactory.mobilephone;

import com.fanyafeng.abstractfactory.mobilephonefactory.mobilephone;

/** * created by fanyafeng on 16/7/1.

*/public class htc implements mobilephone

}

package com.fanyafeng.abstractfactory.mobilephone;

import com.fanyafeng.abstractfactory.mobilephonefactory.mobilephone;

/** * created by fanyafeng on 16/7/1.

*/public class iphone implements mobilephone

}

package com.fanyafeng.abstractfactory.mobilephone;

import com.fanyafeng.abstractfactory.mobilephonefactory.mobilephone;

/** * created by fanyafeng on 16/7/1.

*/public class mi implements mobilephone

}

package com.fanyafeng.abstractfactory.vr;

import com.fanyafeng.abstractfactory.v***ctory.vr;

/** * created by fanyafeng on 16/7/1.

*/public class dapeng implements vr

}

package com.fanyafeng.abstractfactory.vr;

import com.fanyafeng.abstractfactory.v***ctory.vr;

/** * created by fanyafeng on 16/7/1.

*/public class headset implements vr

}

main的測試

package com.fanyafeng.abstractfactory;

import com.fanyafeng.abstractfactory.abfactory.abstractfactory;

import com.fanyafeng.abstractfactory.abfactory.factoryproducter;

import com.fanyafeng.abstractfactory.mobilephonefactory.mobilephone;

import com.fanyafeng.abstractfactory.v***ctory.vr;

import com.fanyafeng.abstractfactory.v***ctory.v***ctory;

/** * created by fanyafeng on 16/7/1.

*/public class main

}

總體來說感覺這個模式好抽象,沒有找到挺好的描述語言,大家也可以根據模式的六原則進行對應

工廠模式三 抽象工廠模式

抽象工廠模式可以用來生產不同產品族的全部產品。對於新增加的產品,無能為力 但是支援增加產品族 抽象工廠模式其實是工廠方法模式的公升級版本,在有多個業務品種和分類時,通過抽象工廠模式產生需要的物件是一種非常好的解決方案。首先建立發動機引擎的介面與不同層次引擎的實現類 public inte ce en...

三)工廠模式 抽象工廠模式

1 工廠模式介紹建立型設計模式,結構簡單的模式,建立物件的介面,讓子類決定例項化哪個類 2 工廠模式使用場景 在任何需要生成複雜物件的地方,都可以使用,用new就可以生成就無需使用 3 工廠模式的組成 分為四大模組,一是抽象工廠,為工廠方法模式的核心,二是具體工廠,實現具體的業務邏輯,三是抽象產品,...

三 抽象工廠模式

抽象工廠模式可以向客戶端提供乙個介面,使得客戶端在不必指定類例項的具體型別的情況下,能夠建立多個類例項族的類例項物件。public inte ce fruitfactory其中包括公共的抽象角色和具體類的進一步抽象。public inte ce fruitpublic abstract class ...