設計模式之-抽象工廠-AbstractFactory
概述:提供一個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。
1.一個系統要獨立於它的產品的建立、組合和表示時。 2.一個系統要由多個產品系列中的一個來配置時。 3.當你要強調一系列相關的產品物件的設計以便進行聯合使用時。 4.當你提供一個產品類庫,而只想顯示它們的介面而不是實現時。
package pack.java.IAnimalFactory;
/***
* 動物介面工廠;
* @author Administrator
*
*/
public interface IAnimalFactory {
/**
* 產生貓介面;
* @return
*/
public ICat createCat();
/**
* 產生狗介面;
* @return
*/
public IDog createDog();
}
package pack.java.IAnimalFactory;
public interface ICat {
/**
* 貓具有吃的方法;
*/
public void eat();
}
package pack.java.IAnimalFactory;
public interface IDog {
/**
* 狗具有吃的方法;
*/
public void eat();
}
package pack.java.AbstractFactory;
import pack.java.AnimalModel.BlackCat;
import pack.java.AnimalModel.BlackDog;
import pack.java.IAnimalFactory.IAnimalFactory;
import pack.java.IAnimalFactory.ICat;
import pack.java.IAnimalFactory.IDog;
/**
* 黑顏色動物實現類;
* @author Administrator
*
*/
public class BlackAnimalFactory implements IAnimalFactory{
/**
* 產生一隻黑貓;
*/
public ICat createCat() {
// TODO Auto-generated method stub
return new BlackCat();
}
/**
* 產生一隻狗;
*/
public IDog createDog() {
// TODO Auto-generated method stub
return new BlackDog();
}
}
package pack.java.AbstractFactory;
import pack.java.AnimalModel.WhiteCat;
import pack.java.AnimalModel.WhiteDog;
import pack.java.IAnimalFactory.IAnimalFactory;
import pack.java.IAnimalFactory.ICat;
import pack.java.IAnimalFactory.IDog;
public class WhiteAnimalFactory implements IAnimalFactory{
public ICat createCat() {
// TODO Auto-generated method stub
return new WhiteCat();
}
public IDog createDog() {
// TODO Auto-generated method stub
return new WhiteDog();
}
}
package pack.java.AnimalModel;
import pack.java.IAnimalFactory.ICat;
public class BlackCat implements ICat{
/***
* 黑貓具有吃的方法;
*/
public void eat() {
// TODO Auto-generated method stub
System.out.println("一隻黑貓,正在捕捉老鼠!");
}
}
package pack.java.AnimalModel;
import pack.java.IAnimalFactory.IDog;
public class BlackDog implements IDog{
/**
* 黑狗具有吃的方法;
*/
public void eat() {
// TODO Auto-generated method stub
System.out.println("一條黑狗,正在啃骨頭!");
}
}
package pack.java.AnimalModel;
import pack.java.IAnimalFactory.ICat;
public class WhiteCat implements ICat{
public void eat() {
// TODO Auto-generated method stub
System.out.println("一隻白貓,正在吃魚!");
}
}
package pack.java.AnimalModel;
import pack.java.IAnimalFactory.IDog;
public class WhiteDog implements IDog{
public void eat() {
// TODO Auto-generated method stub
System.out.println("一條白狗,正在吃東西!");
}
}
package pack.java.testdemo;
import pack.java.AbstractFactory.BlackAnimalFactory;
import pack.java.AbstractFactory.WhiteAnimalFactory;
import pack.java.IAnimalFactory.IAnimalFactory;
import pack.java.IAnimalFactory.ICat;
import pack.java.IAnimalFactory.IDog;
/**
* 測試抽象工廠;
* @author Administrator
*
*/
public class TestAbstractFactory {
/**
* 主方法;
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//例項化一個黑色動物工廠類,
IAnimalFactory animalFactory = new BlackAnimalFactory();
//產生一隻黑貓;
ICat blackCat = animalFactory.createCat();
//黑貓吃東西;
blackCat.eat();
//產生一隻黑狗;
IDog blackDog = animalFactory.createDog();
//黑狗吃東西;
blackDog.eat();
System.out.println("");
//例項化一個白色動物工廠;
IAnimalFactory whiteAnimalFactory = new WhiteAnimalFactory();
//產生一隻白貓;
ICat whiteCat = whiteAnimalFactory.createCat();
//白貓吃東西的方法;
whiteCat.eat();
//產生一隻白狗;
IDog whiteDog = whiteAnimalFactory.createDog();
//白狗吃東西的方法;
whiteDog.eat();
}
}
執行結果:
一隻黑貓,正在捕捉老鼠!
一條黑狗,正在啃骨頭!
一隻白貓,正在吃魚!
一條白狗,正在吃東西!
相關文章
- 設計模式之工廠方法模式|抽象工廠模式設計模式抽象
- 【設計模式之抽象工廠】設計模式抽象
- golang設計模式之抽象工廠模式Golang設計模式抽象
- 設計模式系列之「抽象工廠模式」設計模式抽象
- Java 設計模式之工廠方法模式與抽象工廠模式Java設計模式抽象
- Java常用設計模式之抽象工廠模式Java設計模式抽象
- 23種設計模式之抽象工廠模式設計模式抽象
- 設計模式——抽象工廠模式設計模式抽象
- 設計模式 —— 抽象工廠模式設計模式抽象
- 設計模式-抽象工廠模式設計模式抽象
- 設計模式----抽象工廠設計模式抽象
- 設計模式 – 抽象工廠設計模式抽象
- 設計模式 - 抽象工廠設計模式抽象
- 23種設計模式之抽象工廠設計模式抽象
- 設計模式之工廠模式!深入解析簡單工廠模式,工廠方法模式和抽象工廠模式設計模式抽象
- 設計模式-簡單工廠、工廠方法模式、抽象工廠模式設計模式抽象
- Java設計模式之簡單工廠、工廠方法和抽象工廠Java設計模式抽象
- java設計模式–抽象工廠模式Java設計模式抽象
- Java設計模式-抽象工廠模式Java設計模式抽象
- 設計模式系列·抽象工廠模式設計模式抽象
- 設計模式(十三)抽象工廠模式設計模式抽象
- 設計模式(四)——抽象工廠模式設計模式抽象
- 設計模式(三):抽象工廠設計模式抽象
- 設計模式學習(二)工廠模式——抽象工廠模式設計模式抽象
- java23種設計模式之抽象工廠模式Java設計模式抽象
- JAVA設計模式之 抽象工廠模式【Abstract Factory Pattern】Java設計模式抽象
- C# 設計模式(1)——簡單工廠模式、工廠模式、抽象工廠模式C#設計模式抽象
- 設計模式(三)抽象工廠方法模式設計模式抽象
- 建立型設計模式——抽象工廠模式設計模式抽象
- 23種設計模式(抽象工廠模式)設計模式抽象
- python設計模式-抽象工廠模式Python設計模式抽象
- 大話設計模式:抽象工廠模式設計模式抽象
- C# 設計模式----抽象工廠模式C#設計模式抽象
- 設計模式——抽象工廠實驗設計模式抽象
- 設計模式學習(六)-抽象工廠模式設計模式抽象
- 設計模式--抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- 設計模式(五)抽象工廠模式詳解設計模式抽象
- C#設計模式(4)——抽象工廠模式C#設計模式抽象