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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[Design-Pattern]工厂模式

發(fā)布時(shí)間:2025/3/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Design-Pattern]工厂模式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Java版本

1 package interfaces;2 3 interface Service {4 void method1();5 void method2();6 } 7 8 interface ServiceFactory { 9 Service getService(); 10 } 11 12 class Implementation1 implements Service { 13 Implementation1() {} 14 public void method1() { System.out.println("Implementation1 method1"); } 15 public void method2() { System.out.println("Implementation1 method2"); } 16 } 17 18 class Implementation1Factory implements ServiceFactory { 19 public Service getService() { 20 return new Implementation1(); 21 } 22 } 23 24 class Implementation2 implements Service { 25 Implementation2() {} 26 public void method1() { System.out.println("Implementation2 method1"); } 27 public void method2() { System.out.println("Implementation2 method2"); } 28 } 29 30 class Implementation2Factory implements ServiceFactory { 31 public Service getService() { 32 return new Implementation2(); 33 } 34 } 35 36 public class Factories { 37 public static void serviceConsumer(ServiceFactory fact) { 38 Service s = fact.getService(); 39 s.method1(); 40 s.method2(); 41 } 42 public static void main(String[] args) { 43 serviceConsumer(new Implementation1Factory()); 44 serviceConsumer(new Implementation2Factory()); 45 } 46 }

C++版本

1 #include <stdio.h>2 3 class Service {4 public:5 virtual void method1() = 0;6 virtual void method2() = 0;7 }; 8 9 class ServiceFactory { 10 public: 11 virtual Service* getService() = 0; 12 }; 13 14 class Implementation1 :public Service { 15 public: 16 Implementation1() {} 17 virtual void method1() { printf("Implementation1 method1\n"); } 18 virtual void method2() { printf("Implementation1 method2\n"); } 19 }; 20 21 class Implementation2 :public Service { 22 public: 23 Implementation2() {} 24 virtual void method1() { printf("Implementation2 method1\n"); } 25 virtual void method2() { printf("Implementation2 method2\n"); } 26 }; 27 28 class Implementation1ServiceFactory :public ServiceFactory { 29 public: 30 Implementation1ServiceFactory() {} 31 virtual Service* getService() { 32 return new Implementation1(); 33 } 34 }; 35 36 class Implementation2ServiceFactory :public ServiceFactory { 37 public: 38 Implementation2ServiceFactory() {} 39 virtual Service* getService() { 40 return new Implementation2(); 41 } 42 }; 43 44 void serviceConsumer(ServiceFactory* fact) { 45 Service* s = fact->getService(); 46 s->method1(); 47 s->method2(); 48 } 49 50 int main() 51 { 52 serviceConsumer(new Implementation1ServiceFactory()); 53 serviceConsumer(new Implementation2ServiceFactory()); 54 return 0; 55 }

Java使用匿名內(nèi)部類后的版本

1 package innerclasses;2 3 interface Service {4 void method1();5 void method2();6 } 7 8 interface ServiceFactory { 9 Service getService(); 10 } 11 12 class Implementation1 implements Service { 13 private Implementation1() {} 14 public void method1() { System.out.println("Implementation1 method1"); } 15 public void method2() { System.out.println("Implementation1 method2"); } 16 public static ServiceFactory factory = new ServiceFactory() { 17 @Override 18 public Service getService() { 19 return new Implementation1(); 20 } 21 }; 22 } 23 24 class Implementation2 implements Service { 25 private Implementation2() {} 26 public void method1() { System.out.println("Implementation2 method1"); } 27 public void method2() { System.out.println("Implementation2 method2"); } 28 public static ServiceFactory factory = new ServiceFactory() { 29 @Override 30 public Service getService() { 31 return new Implementation2(); 32 } 33 }; 34 } 35 36 public class Factories { 37 public static void serviceConsumer(ServiceFactory fact) { 38 Service s = fact.getService(); 39 s.method1(); 40 s.method2(); 41 } 42 public static void main(String[] args) { 43 serviceConsumer(Implementation1.factory); 44 serviceConsumer(Implementation2.factory); 45 } 46 }

可以看出,Java在使用了匿名內(nèi)部類后,代碼明顯少了很多,省去了Implementation1ServiceFactory、Implementation2ServiceFactory類的創(chuàng)建。

轉(zhuǎn)載于:https://www.cnblogs.com/brianyi/p/6565191.html

總結(jié)

以上是生活随笔為你收集整理的[Design-Pattern]工厂模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲综合激情 | 日本一区二区三区视频在线 | 久久社区视频 | 亚州av综合色区无码一区 | 性xxxx视频 | 少妇第一次交换又紧又爽 | 亚洲精品97久久中文字幕 | 极品美女开粉嫩精品 | 色婷婷基地 | 91九色国产ts另类人妖 | 91污网站 | 久久精品国产成人av | 99国内揄拍国内精品人妻免费 | 日韩黄色在线视频 | 国产视频一区二区在线 | 国产性生活 | 亚洲熟女乱色综合亚洲av | 朱竹清到爽高潮痉挛 | 长河落日电视连续剧免费观看01 | 欧美激情亚洲色图 | 欧美色交 | 色呦呦视频在线 | 亚洲日本免费 | 能看毛片的网站 | 一区二区成人在线观看 | 欧美性猛片aaaaaaa做受 | 欧美日韩一区二区视频观看 | 无码精品国产一区二区三区 | 污污视频网站在线免费观看 | av在线手机版 | 亚洲一区二区激情 | 玖玖久久 | 无码精品一区二区三区在线播放 | 久久99热精品 | 日韩欧美国产精品综合嫩v 国产小毛片 | 日韩成人免费av | 免费吃奶摸下激烈视频 | 91美女网站 | 亚洲永久在线 | 灌满闺乖女h高h调教尿h | 欧美高清性xxxxhd | 亚洲无码乱码精品国产 | 中文在线最新版天堂 | 男人天堂2020 | 亚洲一区二区三区久久久 | 亚洲av无码一区二区三区人 | 操穴网站 | 午夜黄色一级片 | 91高清无打码 | 欧美a级网站 | 91热热| 一本色道久久综合亚洲精品按摩 | 蜜臀久久99精品久久久 | 毛利兰被扒开腿做同人漫画 | 国产精品一区二区无线 | 久久久高清 | 男生插女生视频在线观看 | 欧美天堂在线观看 | 黄色综合网站 | 亚洲专区欧美专区 | 射射色 | 亚洲国产精品久久人人爱 | 蜜臀av性久久久久蜜臀av麻豆 | 日韩美女三级 | 已满十八岁免费观看全集动漫 | 环太平洋3:泰坦崛起 | 亚洲一卡二卡三卡四卡 | 国产aa毛片 | 国产男女猛烈无遮挡 | 肉肉视频在线观看 | 欧洲一区二区三区四区 | 熟妇大屁股一区二区三区视频 | 男女av网站 | 欧美三日本三级少妇三 | 免费看黄在线观看 | 91香蕉视频黄 | 天堂在线资源8 | 高清国产在线 | 久久国内免费视频 | 亚洲中文字幕视频一区 | 污视频网站免费看 | 免费黄色大片 | 国产1区| 污污在线免费观看 | 中文字幕淫 | 日本四级电影 | 无码人妻丰满熟妇啪啪 | 天天人人| 亚洲字幕 | 免费看a视频 | 国产综合无码一区二区色蜜蜜 | 成熟了的熟妇毛茸茸 | 亚洲系列第一页 | 日韩麻豆视频 | 亚洲一二三四区 | 网友自拍咪咪爱 | 香蕉a视频| 欧美九九九 | 91片黄在线观看 |