日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 抽象工厂模式简单实例

發布時間:2023/12/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 抽象工厂模式简单实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

抽象工廠模式:提供一個創建一系列的相關的或者依賴的對象的接口,無需指定它們的具體實現類,具體的時間分別在子類工廠中產生。

類似于工廠模式:隔離了具體類的生產實現,使得替換具體的工廠實現類很容易。包含有以下模塊:

1.抽象產品接口:定義產品的接口,公共的暴露方法。便于實際的產品類實現。

2.具體的產品類:包含實際產品的類的邏輯處理:

3.抽象工廠接口:定義產生系列對象的接口

4.具體的工廠實現:實現抽象的接口工廠,返回具體的產品類的實現。

下面是具體的代碼示例:

1.抽象的產品接口,定義了Car 和 IBreakFast

package factory.simple;/*** 抽象產品角色 交通工具接口* * @author lilin* */ public interface Car {/*** 上班函數*/void gotowork();}

?

package factory.abstractfactory;/*** @author lilin* */ public interface IBreakFast {/*** 吃早餐*/void eat(); }

2.定義具體的產品類的實現:

package factory.simple;/*** 具體產品角色,自行車* * @author lilin* */ public class Bike implements Car {@Overridepublic void gotowork() {System.out.println("騎自行車去上班!");}}

?

package factory.simple;/*** @author lilin* */ public class Bus implements Car {@Overridepublic void gotowork() {System.out.println("坐公交車去上班!");}}

?

/*** */ package factory.abstractfactory;/*** @author lilin* */ public class Milk implements IBreakFast {@Overridepublic void eat() {System.out.println("喝牛奶!");}}

?

/*** */ package factory.abstractfactory;/*** @author lilin* */ public class Orange implements IBreakFast {@Overridepublic void eat() {System.out.println("吃橘子!");}}

3.定義好抽象的工廠接口,一系列的獲取實例的接口方法:

/*** */ package factory.abstractfactory;import factory.simple.Car;/*** @author lilin* */ public interface IAbstractFactory {/*** * @return*/Car getCar();/*** */IBreakFast getBreakFast();}

4.定義具體的工廠生產類,具體的產品實例返回。

/*** */ package factory.abstractfactory;import factory.simple.Bike; import factory.simple.Car;/*** @author lilin* */ public class LowPersonFactory implements IAbstractFactory {@Overridepublic Car getCar() {return new Bike();}@Overridepublic IBreakFast getBreakFast() {return new Orange();}}

?

/*** */ package factory.abstractfactory;import factory.simple.Bus; import factory.simple.Car;/*** @author lilin* */ public class HighPersonFactory implements IAbstractFactory {@Overridepublic Car getCar() {return new Bus();}@Overridepublic IBreakFast getBreakFast() {return new Milk();} }

?

最后,通過testNG簡單測試下,抽象工廠模式的實現:代碼如下:

/*** */ package factory.abstractfactory;import org.testng.annotations.Test;import factory.simple.Car;/*** @author lilin* */ public class AbstractFactoryTest {@Testpublic void test() {IAbstractFactory factory = new LowPersonFactory();Car car = factory.getCar();IBreakFast breakFast = factory.getBreakFast();System.out.println("吃的早飯是:");breakFast.eat();System.out.println("上班交通工具是:");car.gotowork();IAbstractFactory factory2 = new HighPersonFactory();car = factory2.getCar();breakFast = factory2.getBreakFast();System.out.println("吃的早飯是:");breakFast.eat();System.out.println("上班交通工具是:");car.gotowork();}}

這樣使用過程城中,只要注入抽象的工廠接口,具體的產品的產生,會在實際的子類工廠類中產生,也可以隨意的添加和修改實際子類工廠類,而不需要改變既有的代碼設計。

抽象工廠方法:一般常常使用于一套程序,需要多套實現的場景之下。

?

轉載于:https://www.cnblogs.com/lilin0719/p/5313886.html

總結

以上是生活随笔為你收集整理的java 抽象工厂模式简单实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。