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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java中factory_JAVA工厂方法模式(Factory Method)

發布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中factory_JAVA工厂方法模式(Factory Method) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.普通工廠模式

普通工廠模式:就是建立一個工廠類,對實現了同一接口的一些類進行實例的創建。

1-1.建立Sender接口

public interface Sender {

public void send();

}

1-2 創建實現類實現Sender接口,比如文本與圖像以及視頻類

文本類

public class TextSender implements Sender {

public void send() {

System.out.println("this is Textsender!");

}

}

圖像類

public class ImageSender implements Sender {

public void send() {

System.out.println("this is Imagessender!");

}

}

視頻類

public class VideoSender implements Sender {

public void send() {

System.out.println("this is Imagessender!");

}

}

1-3建立工廠類

public class SendFactory {

public Sender produce(String type) {

if ("mail".equals(type)) {

return new TextSender();

}

else if ("sms".equals(type)) {

return new ImageSender();

}

else if ("video".equals(type)) {

return new VideoSender();

}

else {

System.out.println("請輸入正確的類型!");

return null;

}

}

}

1-4 普通的工廠模式設計已經完成了。下面在main中測試下

public class Main {

public static void main(String[] args) {

SendFactory factory = new SendFactory();

Sender text=factory.produce("text");

text.send();

Sender image=factory.produce("image");

image.send();

Sender video=factory.produce("video");

video.send();

}

}

測試結果截圖:

但是這種普通工廠方式一旦參數不正確不會產生對象。為了改進這個方式便有了多工廠方法,一個方法產生對應的一個對象,通過調用方法來產生對象

2-1多工廠模式

只要改變1-3中的工廠類即可。

public class SendFactory {

public static Sender produceText(){

return new TextSender();

}

public static Sender produceImage(){

return new ImageSender();

}

public static Sender produceVideo(){

return new VideoSender();

}

}

在main中測試

2-2

public class Main {

public static void main(String[] args) {

SendFactory factory = new SendFactory();

Sender text = factory.produceText();

text.send();

Sender image = factory.produceImage();

image.send();

Sender video = factory.produceVideo();

video.send();

}

}

測試結果如下圖

3。上面例子要是有新的類產生要去更改工廠類,不利于維護,對于這樣的情況我們可以采用抽象工廠模式。

還是用上面的作為例子。

3-1.建立Sender接口

public interface Sender {

public void send();

}

3-2 創建實現類實現Sender接口,比如文本與圖像以及視頻類

文本類

public class TextSender implements Sender {

public void send() {

System.out.println("this is Textsender!");

}

}

圖像類

public class ImageSender implements Sender {

public void send() {

System.out.println("this is Imagessender!");

}

}

視頻類

public class VideoSender implements Sender {

public void send() {

System.out.println("this is Imagessender!");

}

}

3-3提供一個接口讓工廠類來實現這邊我用offer接口

public interface Offer {

public Sender offer();

}

3-4 對應類由對應工廠來生產

public class TextSenderFactory implements Offer {

public Sender offer() {

return new TextSender();

}

}

public class ImageSenderFactory implements Offer {

public Sender offer() {

return new ImageSender();

}

}

public class VideoSenderFactory implements Offer {

public Sender offer() {

return new VideoSender() ;

}

}

3-5.已經完成了去main中測試下

public class Main {

public static void main(String[] args) {

Offer textoffer=new TextSenderFactory();

Sender text=textoffer.offer();

text.send();

Offer imageoffer=new ImageSenderFactory();

Sender image=imageoffer.offer();

image.send();

}

}

測試結果:

總結

以上是生活随笔為你收集整理的java中factory_JAVA工厂方法模式(Factory Method)的全部內容,希望文章能夠幫你解決所遇到的問題。

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