溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java設計模式學習之工廠方法模式如何實現

發布時間:2021-08-07 14:04:33 來源:億速云 閱讀:122 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“java設計模式學習之工廠方法模式如何實現”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“java設計模式學習之工廠方法模式如何實現”這篇文章吧。

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

工廠方法模式結構圖:

java設計模式學習之工廠方法模式如何實現

項目需求,創建一個雷鋒工廠,大學生可以去幫助別人,志愿者也可以幫助別人做事情。

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

package FactoryMethodModel;

public class LeiFeng {

 public void Sweep(){
  System.out.println("掃地");
 }
 
 public void Wash(){
  System.out.println("洗衣");
 }
 
 public void BuyRice(){
  System.out.println("買米");
 }
}

2:創建一個學雷鋒的大學生的類,繼承雷鋒類,可增加自己的功能。

package FactoryMethodModel;

/**
 * 學雷鋒的大學生
 * @author 我不是張英俊
 *
 */
public class UniversityStudent extends LeiFeng {
//里面可以增加專屬大學生的功能
}

3:創建一個社區志愿者的類,繼承雷鋒類。

package FactoryMethodModel;

/**
 * 學雷鋒的社區人員
 * @author 我不是張英俊
 *
 */
public class Volunteer extends LeiFeng {

}

4:創建一個雷鋒工廠接口。

package FactoryMethodModel;

/**雷鋒工廠的總接口。
 * @author 我不是張英俊
 *
 */
interface LeiFengFactory {
 LeiFeng CreatLenFeng();
}

5:創建學雷鋒的大學生的工廠。

package FactoryMethodModel;

/**
 * 學雷鋒的大學生工廠
 * @author 我不是張英俊
 *
 */
public class UniversityStudentFactory implements LeiFengFactory {

 @Override
 public LeiFeng CreatLenFeng() {
  return new UniversityStudent();
 }

 
}

6:創建學雷鋒的志愿者工廠。

package FactoryMethodModel;

/**
 * 學雷鋒的社區制志愿者
 * @author 我不是張英俊
 *
 */
public class VolunteerFactory implements LeiFengFactory {

 @Override
 public LeiFeng CreatLenFeng() {
 // TODO Auto-generated method stub
 return new Volunteer();
 }

 
}

7:測試類

package FactoryMethodModel;

/**
 * 建立一個雷鋒工廠,大學生可以以雷鋒的名義起幫助別人,社區志愿者也可以。
 * 工廠化模式:定義一個用于創建對象的接口,讓子類決定實例化哪一個類。
 * 工廠方法使一個類的實例化延遲到其子類。
 * @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:控制臺

買米
掃地
洗衣

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

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

以上是“java設計模式學習之工廠方法模式如何實現”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女