初級 設計模式 工廠模式

2021-09-02 12:42:19 字數 2562 閱讀 4895

/**

* 所有工廠模式都是為了讓物件的呼叫者和物件建立過程分離,簡化呼叫端**,便於維護

* 簡單地物件建立則不需要使用工廠模式

*//**

* 簡單工廠(靜態工廠)

* * 1、建立產品介面

* 2、建立工廠類

* 3、工廠類通過傳入引數的不同返回不同的產品

* * 優點:

* 1、**呼叫簡單,類之間的關係也較簡單

* 缺點:

* 1、拓展性稍差,如果需要增加新的產品,則需要修改已有**(工廠類),不符合開閉原則(可擴充套件、禁修改)

*/public class ******factroy

}/**

* 工廠類,通過該類獲取產品例項

*/class arsenalfactoryelse if("喀秋莎".equals(name))else if("如意金箍棒".equals(name))else }}

/** * 產品介面

*/inte***ce iarm

/** * 以下為具體產品

*/class ak47 implements iarm

}class katyusha implements iarm

}class monkeykingbar implements iarm

}

/**

* 工廠方法

* * 1、定義產品介面

* 2、定義工廠抽象類

* 3、通過工廠建立具體產品

* * 優點:

* 1、方便對產品進行更換

* 2、方便增加新的產品

* 缺點:

* 1、產品多了類就會多 [乙個產品=乙個產品類+乙個產品類工廠](類**)

* 2、產品介面 修改後其他實現類都要改

*/public class factorymethod

}/**

* 產品介面

*/inte***ce imoveable

/** * 工廠抽象類

*/abstract class vehiclefactory

/** * 以下為具體產品及相應工廠

*/class plane implements imoveable

}class planefactory extends vehiclefactory

}class car implements imoveable

}class ca***ctory extends vehiclefactory

}

抽象工廠start

/**

* 抽象工廠類

*/public abstract class abstractfactory

/** * 抽象工廠對應的抽象產品類

*/abstract class weapon

abstract class vehicle

abstract class food

/**

* 產品系列1

*/public class defaultfactory extends abstractfactory

@override

public vehicle createvehicle()

@override

public food createfood()

}class ak47 extends weapon

}class tank extends vehicle

}class beef extends food

}

/**

* 產品系列2

*/public class magicfactory extends abstractfactory

@override

public vehicle createvehicle()

@override

public food createfood()

}class magicstick extends weapon

}class magicbroom extends vehicle

}class magicbread extends food

}

/**

* 抽象工廠

* 主要解決 產品系列 的功能

* * 1、定義 產品系列工廠 抽象類

* 2、定義每個產品的抽象類

* 3、定義具體產品、具體產品工廠

* * abstractfactory --> 定義產品的標準(方法)

* defaultfactory、magicfactory.... --> 實現具體的產品(方法)

* * 優點:

* 1、方便對產品系列進行增加、替換

* 缺點:

* 1、新增產品的話,每個工廠實現都要改

*/public class client

}

抽象工廠end

設計模式初級 03 抽象工廠模式

一 定義 抽象工廠模式是利用乙個超級工廠來建立其他工廠。該設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。在抽象工廠模式中,介面是負責建立乙個生成別的物件的工廠,而不是生產指定的類。每個生成物件的工廠都按照工廠模式提供物件。二 詳細介紹 解決問題 主要解決介面選擇的問題。使用場景 系統的產品...

初級 設計模式 裝飾模式

裝飾模式 類似於 模式 與 的區別 1 真實角色持有 角色並不一定需要呼叫者提供真實角色 呼叫者不需要持有真實角色 裝飾 呼叫者需要持有真實角色,並提供給裝飾器 2 真實角色控制 角色返回任意真實角色,甚至不返回真實角色 裝飾 對傳入的真實角色進行裝飾,然後將裝飾後的角色返回 我通過 角色 買一套精...

設計模式 工廠模式 抽象工廠模式

建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...