乙個呼叫者想建立乙個物件,只要知道其名稱就可以了
擴充套件性高,如果想增加乙個產品,只要擴充套件乙個工廠類就可以
遮蔽產品的具體實現,呼叫者只關心產品的介面
簡單工廠
package xin.chen.create_type.factory.******factory;
/** * @author: create_by: chenxin
* @data:created in 2018/8/3 9:50
* @version:
* @acton: 行為藉口
*/public inte***ce car
package xin.chen.create_type.factory.******factory;
/** * @author: create_by: chenxin
* @data:created in 2018/8/3 10:06
* @version:
* @acton:
*/public class ca***ctory else if("gq".equals(type))
return null;
}/** 第二種模式 */
public static car createbyd()
public static car creategq()
}
package xin.chen.create_type.factory.******factory;
/** * @author: create_by: chenxin
* @data:created in 2018/8/3 9:50
* @version:
* @acton:
*/public class byd implements car
}
package xin.chen.create_type.factory.******factory;
/** * @author: create_by: chenxin
* @data:created in 2018/8/3 9:51
* @version:
* @acton:
*/public class gq implements car
}
package xin.chen.create_type.factory.******factory;
/** * @author: create_by: chenxin
* @data:created in 2018/8/3 9:52
* @version:
* @acton: 測試簡單工廠
*/public class test******factorydemo
}
關係圖:
工廠方法
package xin.chen.create_type.factory.factorymethod;
/** * @author: create_by: chenxin
* @data:created in 2018/8/3 9:50
* @version:
* @acton: 行為藉口
*/public inte***ce car
package xin.chen.create_type.factory.factorymethod;
/** * @author: create_by: chenxin
* @data:created in 2018/8/3 10:33
* @version:
* @acton: 行為工廠
*/public inte***ce ca***ctory
package xin.chen.create_type.factory.factorymethod;
/** * @author: create_by: chenxin
* @data:created in 2018/8/3 9:50
* @version:
* @acton:
*/public class byd implements car
}
package xin.chen.create_type.factory.factorymethod;
/** * @author: create_by: chenxin
* @data:created in 2018/8/3 10:34
* @version:
* @acton:
*/public class bydfactory implements ca***ctory
}
package xin.chen.create_type.factory.factorymethod;
/** * @author: create_by: chenxin
* @data:created in 2018/8/3 9:51
* @version:
* @acton:
*/public class gq implements car
}
package xin.chen.create_type.factory.factorymethod;
/** * @author: create_by: chenxin
* @data:created in 2018/8/3 10:35
* @version:
* @acton:
*/public class gqfactory implements ca***ctory
}
package xin.chen.create_type.factory.factorymethod;
/** * @author: create_by: chenxin
* @data:created in 2018/8/3 10:35
* @version:
* @acton: 測試工廠方法
*/public class testfactorymethoddemo
}
關係圖:
設計模式之工廠模式(建立型)
什麼是設計模式?每乙個模式描述了我們周圍不斷重 生的問題,以及該問題的解決方案的核心。這樣,你就能一次又一次地使用該方案而不必做重複勞動。1.簡單工廠 factory 當看到 new 時,就會想到 具體 pizza pizza new cheesepizza 當有很多種pizza時,我們需要用選擇語...
設計模式 建立型之工廠模式
讓乙個單獨的類專門實現乙個方法,根據傳入的型別引數建立不同型別的物件,並返回他們的抽象,這種建立物件的模式叫做工廠模式 工廠模式分為簡單工廠模式 工廠方法模式和抽象工廠模式 工廠模式將不同子類的例項化的過程封裝在單獨的類,讓子類只專注於實現,實現了功能解耦 簡單工廠模式由三部分組成 父類介面 pub...
設計模式之建立型 工廠模式
工廠模式 實現了建立者和呼叫者的分離 分類 簡單工廠模式 用來生成同一等級結構中的任意產品 對於增加新的產品,需要修改已有的 工廠方法模式 用來生成同一等級結構中的固定產品 支援增加任意產品 抽象工廠模式 用來生成不同產品族的全部產品 對於增加新的產品,無能為力,支援增加產品族 物件導向設計的基本原...