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

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

服務(wù)器之家 - 編程語言 - Java教程 - java設(shè)計(jì)模式學(xué)習(xí)之工廠方法模式

java設(shè)計(jì)模式學(xué)習(xí)之工廠方法模式

2021-01-17 14:41南國木棉 Java教程

這篇文章主要介紹了java設(shè)計(jì)模式學(xué)習(xí)之工廠方法模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

工廠方法模式(factory method):定義一個用于創(chuàng)建對象的接口,讓子類決定實(shí)例化哪一個類。工廠方法使一個類的實(shí)例化延遲到其子類。

工廠方法模式結(jié)構(gòu)圖:

java設(shè)計(jì)模式學(xué)習(xí)之工廠方法模式

項(xiàng)目需求,創(chuàng)建一個雷鋒工廠,大學(xué)生可以去幫助別人,志愿者也可以幫助別人做事情。

1:創(chuàng)建一個雷鋒類,具有幫助別人掃地,洗衣,買米的功能。

java" id="highlighter_483127">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package factorymethodmodel;
 
public class leifeng {
 
 public void sweep(){
  system.out.println("掃地");
 }
 
 public void wash(){
  system.out.println("洗衣");
 }
 
 public void buyrice(){
  system.out.println("買米");
 }
}

2:創(chuàng)建一個學(xué)雷鋒的大學(xué)生的類,繼承雷鋒類,可增加自己的功能。

?
1
2
3
4
5
6
7
8
9
10
package factorymethodmodel;
 
/**
 * 學(xué)雷鋒的大學(xué)生
 * @author 我不是張英俊
 *
 */
public class universitystudent extends leifeng {
//里面可以增加專屬大學(xué)生的功能
}

3:創(chuàng)建一個社區(qū)志愿者的類,繼承雷鋒類。

?
1
2
3
4
5
6
7
8
9
10
package factorymethodmodel;
 
/**
 * 學(xué)雷鋒的社區(qū)人員
 * @author 我不是張英俊
 *
 */
public class volunteer extends leifeng {
 
}

4:創(chuàng)建一個雷鋒工廠接口。

?
1
2
3
4
5
6
7
8
9
package factorymethodmodel;
 
/**雷鋒工廠的總接口。
 * @author 我不是張英俊
 *
 */
interface leifengfactory {
 leifeng creatlenfeng();
}

5:創(chuàng)建學(xué)雷鋒的大學(xué)生的工廠。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package factorymethodmodel;
 
/**
 * 學(xué)雷鋒的大學(xué)生工廠
 * @author 我不是張英俊
 *
 */
public class universitystudentfactory implements leifengfactory {
 
 @override
 public leifeng creatlenfeng() {
  return new universitystudent();
 }
 
 
}

6:創(chuàng)建學(xué)雷鋒的志愿者工廠。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package factorymethodmodel;
 
/**
 * 學(xué)雷鋒的社區(qū)制志愿者
 * @author 我不是張英俊
 *
 */
public class volunteerfactory implements leifengfactory {
 
 @override
 public leifeng creatlenfeng() {
 // todo auto-generated method stub
 return new volunteer();
 }
 
 
}

7:測試類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package factorymethodmodel;
 
/**
 * 建立一個雷鋒工廠,大學(xué)生可以以雷鋒的名義起幫助別人,社區(qū)志愿者也可以。
 * 工廠化模式:定義一個用于創(chuàng)建對象的接口,讓子類決定實(shí)例化哪一個類。
 * 工廠方法使一個類的實(shí)例化延遲到其子類。
 * @author 我不是張英俊
 *
 */
public class test {
 
 public static void main(string[] args) {
 
 leifengfactory factory=new universitystudentfactory();
 leifeng student =factory.creatlenfeng();
 
 student.buyrice();
 student.sweep();
 student.wash();
 }
 
}

8:控制臺

買米
掃地
洗衣

總結(jié):簡單工廠方法違背了開放-封閉原則,而工廠方法克服了此問題,當(dāng)需要增加新的,例如小學(xué)生學(xué)雷鋒的時候,工廠方法增加新的小學(xué)生工廠即可,然后再測試類中調(diào)用即可。

工廠方法模式還保持了封裝對象創(chuàng)建過程的有點(diǎn)。使得要更換對象的時候,不需要做打的改動就可以實(shí)現(xiàn),降低了客戶程序與產(chǎn)品對象的耦合,工廠方法模式是簡單工廠模式的進(jìn)一步抽象和推廣。由于使用了多態(tài)性,工廠模式保存了簡單工廠模式的有點(diǎn),并且克服了缺點(diǎn)。但缺點(diǎn)是,沒增加一個產(chǎn)品,就必須增加一個工廠類,增加的額外的開發(fā)量。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://www.cnblogs.com/hrlizhi/p/7651981.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品免费看片 | 亚洲专区视频 | 午夜播影院 | 色在线电影 | 精品视频国产 | 偷拍自拍网 | 欧美一区在线视频 | 久久国产精品久久国产精品 | 91视频网址 | 国产色在线观看 | 国产色秀视频在线观看 | 亚洲精品免费在线 | 久久综合成人精品亚洲另类欧美 | 午夜视频在线免费看 | 国产欧美日韩综合精品一区二区 | 久久国产综合 | 亚洲精品日韩激情在线电影 | 国产综合久久久 | 高清国产午夜精品久久久久久 | 在线干| 亚洲欧美中文字幕 | 中文字幕在线一区二区三区 | 嫩草视频免费在线观看 | 美女毛片 | 天天爽夜夜爽夜夜爽精品视频 | 欧美精品久久久 | 超碰一区| 国产成人影院 | 性做久久久久久久久 | 国产资源在线观看视频 | 性毛片| 亚洲视频 欧美视频 | 欧美日韩一区二区视频在线观看 | 在线观看的av | 中文字幕av一区二区三区 | 精品免费视频 | 欧美日韩精品在线 | 国产伦精品一区二区三区四区视频 | av网址在线播放 | 亚洲精品视频专区 | 亚洲国产aⅴ精品一区二区 少妇一级片免费看 |