国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java設計模式之工廠方法模式詳解

java設計模式之工廠方法模式詳解

2021-05-27 13:54dubstep Java教程

這篇文章主要為大家詳細介紹了java設計模式之工廠方法模式詳解,具有一定的參考價值,感興趣的小伙伴們可以參考一下

工廠方法模式分為三種,具體內容如下

一、普通工廠模式,就是建立一個工廠類,對實現了同一接口的一些類進行實例的創建。首先看下關系圖:

java設計模式之工廠方法模式詳解

舉例如下:(我們舉一個發送郵件和短信的例子)

首先,創建二者的共同接口:

java" id="highlighter_34749">
?
1
2
3
4
5
public interface sender {
 
 public void send();
 
}

其次,創建實現類:

?
1
2
3
4
5
6
public class mailsender implements sender {
 @override
 public void send() {
  system.out.println("this is mailsender!");
 }
}
?
1
2
3
4
5
6
public class smssender implements sender {
 @override
 public void send() {
  system.out.println("this is sms sender!");
 }
}

最后,建工廠類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
public class sendfactory {
 
 public sender produce(string type) {
  if ("mail".equals(type)) {
   return new mailsender();
  } else if ("sms".equals(type)) {
   return new smssender();
  } else {
   system.out.println("請輸入正確的類型!");
   return null;
  }
 }
}

我們來測試下:

?
1
2
3
4
5
6
7
8
public class factorytest {
 
 public static void main(string[] args) {
  sendfactory factory = new sendfactory();
  sender sender = factory.produce("sms");
  sender.send();
 }
}

輸出:this is sms sender!

二、多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字符串出錯,則不能正確創建對象,而多個工廠方法模式是提供多個工廠方法,分別創建對象。

關系圖:

java設計模式之工廠方法模式詳解

將上面的代碼做下修改,改動下sendfactory類就行,如下:

?
1
2
3
4
5
6
7
8
9
10
public class sendfactory {
 
 public sender producemail(){
  return new mailsender();
 }
 
 public sender producesms(){
  return new smssender();
 }
}

測試類如下:

?
1
2
3
4
5
6
7
public class factorytest {
 
 public static void main(string[] args) {
  sendfactory factory = new sendfactory();
  sender sender = factory.producemail();
  sender.send();
 }

輸出:this is mailsender!

 三、靜態工廠方法模式,將上面的多個工廠方法模式里的方法置為靜態的,不需要創建實例,直接調用即可。

?
1
2
3
4
5
6
7
8
9
10
public class sendfactory {
 
 public static sender producemail(){
  return new mailsender();
 }
 
 public static sender producesms(){
  return new smssender();
 }
}
?
1
2
3
4
5
6
7
public class factorytest {
 
 public static void main(string[] args) {
  sender sender = sendfactory.producemail();
  sender.send();
 }
}

輸出:this is mailsender! 

總體來說,工廠模式適合:凡是出現了大量的產品需要創建,并且具有共同的接口時,可以通過工廠方法模式進行創建。在以上的三種模式中,第一種如果傳入的字符串有誤,不能正確創建對象,第三種相對于第二種,不需要實例化工廠類,所以,大多數情況下,我們會選用第三種——靜態工廠方法模式

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/dubstep/archive/2018/08/23/9527312.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91精品国产色综合久久 | 黄色免费在线视频 | 国产成人久久精品一区二区三区 | 日韩一区免费在线观看 | 天天干天天操天天射 | 精品国产鲁一鲁一区二区在线观看 | 在线观看三级网站 | 日韩视频精品在线 | 成人在线免费观看 | 色爱区综合五月激情 | 黄色成人在线观看视频 | 欧美一级免费看 | 国产精品午夜在线观看 | 欧美精品免费在线 | 在线一级视频 | 黄色av免费在线看 | av免费在线观看网站 | 国产精品一区欧美 | 中文字幕一级毛片 | 91在线综合 | 亚洲激情中文字幕 | 国产成人精品综合 | 色婷婷亚洲一区二区三区 | 免费在线看a | 中文字幕在线不卡 | 久久午夜影院 | 国产一级片儿 | 久久久久久综合 | 久久久久av | 久久免| 久久午夜羞羞影院免费观看 | 亚洲欧美成人a毛片 | 日本精品一区二区三区视频 | 日韩和的一区二在线 | 97色婷婷成人综合在线观看 | 99视频精品 | 久久精品二区 | 免费一级黄色 | 国产一二三区在线观看 | 91精品国产91久久久久久 | 精品1区2区|