最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java  工廠方法詳解及實(shí)例代碼

 更新時(shí)間:2017年01月25日 09:45:10   投稿:lqh  
這篇文章主要介紹了java 工廠方法詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下

工廠方法概述

工廠方法模式中抽象工廠類(lèi)負(fù)責(zé)定義創(chuàng)建對(duì)象的接口,具體對(duì)象的創(chuàng)建工作由繼承抽象工廠的具體類(lèi)實(shí)現(xiàn)。

優(yōu)點(diǎn)

客戶(hù)端不需要在負(fù)責(zé)對(duì)象的創(chuàng)建,從而明確了各個(gè)類(lèi)的職責(zé),如果有新的對(duì)象增加,只需要增加一個(gè)具體的類(lèi)和具體的工廠類(lèi)即可,不影響已有的代碼,后期維護(hù)容易,增強(qiáng)了系統(tǒng)的擴(kuò)展性

 缺點(diǎn)

需要額外的編寫(xiě)代碼,增加子工作量

public class IntegerDemo {
  public static void main(String[] args) {
    Factory factory = new DogFactory();
    Animal animal = factory.createAnimal();
    animal.eat();
 
    factory = new CatFactory();
    animal = factory.createAnimal();
    animal.eat();
  }
}
 
abstract class Animal {// 抽象類(lèi)
  public abstract void eat();
}
 
class Dog extends Animal {// 狗
  public void eat() {
    System.out.println("a dog is eatting.");
  }
}
 
class Cat extends Animal {// 貓
  public void eat() {
    System.out.println("a cat is eatting.");
  }
}
 
interface Factory {// 接口
  public abstract Animal createAnimal();
}
 
class DogFactory implements Factory {// 實(shí)現(xiàn)接口
  public Animal createAnimal() {
    return new Dog();
  }
}
 
class CatFactory implements Factory {// 實(shí)現(xiàn)接口
  public Animal createAnimal() {
    return new Cat();
  }
}

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Java SpringBoot整合SpringCloud

    Java SpringBoot整合SpringCloud

    SpringCloud專(zhuān)注于為典型的用例和擴(kuò)展機(jī)制提供良好的開(kāi)箱即用體驗(yàn),今天小編就帶大家認(rèn)識(shí)SpringCloud都有些什么特點(diǎn),感興趣的小伙伴留下來(lái)閱讀全文吧
    2021-09-09
  • 使用Spring Security和JWT實(shí)現(xiàn)安全認(rèn)證機(jī)制

    使用Spring Security和JWT實(shí)現(xiàn)安全認(rèn)證機(jī)制

    在現(xiàn)代 Web 應(yīng)用中,安全認(rèn)證和授權(quán)是保障數(shù)據(jù)安全和用戶(hù)隱私的核心機(jī)制,Spring Security 是 Spring 框架下專(zhuān)為安全設(shè)計(jì)的模塊,具有高度的可配置性和擴(kuò)展性,而 JWT則是當(dāng)前流行的認(rèn)證解決方案,所以本文介紹了如何使用Spring Security和JWT實(shí)現(xiàn)安全認(rèn)證機(jī)制
    2024-11-11
  • elasticsearch集群查詢(xún)超10000的解決方案

    elasticsearch集群查詢(xún)超10000的解決方案

    ES為了避免用戶(hù)的過(guò)大分頁(yè)請(qǐng)求造成ES服務(wù)所在機(jī)器內(nèi)存溢出,默認(rèn)對(duì)深度分頁(yè)的條數(shù)進(jìn)行了限制,默認(rèn)的最大條數(shù)是10000條,這篇文章主要給大家介紹了關(guān)于elasticsearch集群查詢(xún)超10000的解決方案,需要的朋友可以參考下
    2024-08-08
  • Java最簡(jiǎn)單的DES加密算法實(shí)現(xiàn)案例

    Java最簡(jiǎn)單的DES加密算法實(shí)現(xiàn)案例

    下面小編就為大家?guī)?lái)一篇Java最簡(jiǎn)單的DES加密算法實(shí)現(xiàn)案例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • 基于Java HashMap的死循環(huán)的啟示詳解

    基于Java HashMap的死循環(huán)的啟示詳解

    本篇文章是對(duì)Java HashMap的死循環(huán)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • spring?boot項(xiàng)目中集成rocketmq詳細(xì)步驟

    spring?boot項(xiàng)目中集成rocketmq詳細(xì)步驟

    這篇文章主要給大家介紹了關(guān)于spring?boot項(xiàng)目中集成rocketmq的相關(guān)資料,springboot集成rocketmq的方法非常簡(jiǎn)單,文中直接上代碼,需要的朋友可以參考下
    2023-09-09
  • 全面解析JPA?倉(cāng)庫(kù)repository中的findAll()方法

    全面解析JPA?倉(cāng)庫(kù)repository中的findAll()方法

    這篇文章主要介紹了全面解析JPA?倉(cāng)庫(kù)repository中的findAll()方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java合并兩個(gè)及以上有序鏈表的示例詳解

    Java合并兩個(gè)及以上有序鏈表的示例詳解

    這篇文章主要通過(guò)兩個(gè)例題為大家介紹一下Java合并兩個(gè)及以上有序鏈表的實(shí)現(xiàn)方法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以參考一下
    2022-11-11
  • Spring?@Transactional事務(wù)失效的原因分析

    Spring?@Transactional事務(wù)失效的原因分析

    一個(gè)程序中不可能沒(méi)有事務(wù),Spring中,事務(wù)的實(shí)現(xiàn)方式分為兩種:編程式事務(wù)和聲明式事務(wù)。日常項(xiàng)目中,我們都會(huì)使用聲明式事務(wù)?@Transactional來(lái)實(shí)現(xiàn)事務(wù),本文來(lái)和大家聊聊什么情況會(huì)導(dǎo)致@Transactional事務(wù)失效
    2022-09-09
  • SpringBoot集成本地緩存性能之王Caffeine示例詳解

    SpringBoot集成本地緩存性能之王Caffeine示例詳解

    這篇文章主要為大家介紹了SpringBoot集成本地緩存性能之王Caffeine的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07

最新評(píng)論

枣强县| 辽阳县| 肥乡县| 大埔县| 含山县| 老河口市| 广水市| 辽中县| 溧水县| 沛县| 新野县| 青川县| 前郭尔| 芮城县| 苏尼特右旗| 海门市| 华亭县| 汉阴县| 八宿县| 黄大仙区| 河东区| 鹿泉市| 余庆县| 富民县| 太康县| 天台县| 沁水县| 石家庄市| 龙山县| 南昌县| 台中市| 岳西县| 军事| 新宁县| 井陉县| 青田县| 丹巴县| 阜阳市| 阳新县| 沙湾县| 昌平区|