-
抽象工廠模式類圖 系列與家族查看全部
-
工廠模式動(dòng)機(jī) 代碼設(shè)計(jì): 松耦合,一個(gè)對(duì)象的依賴對(duì)象的變化與本身無關(guān) 具體產(chǎn)品與客戶端剝離,責(zé)任分割查看全部
-
設(shè)計(jì)模式: 是一套被反復(fù)使用,多數(shù)人只曉得、經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié) 是優(yōu)秀的使用案例,可提高代碼的重用性,讓代碼更容易被他人理解,保證代碼可靠性 工廠模式意圖: 定義一個(gè)接口來創(chuàng)建對(duì)象,但是讓子類來決定哪些類需要被實(shí)例化 工廠方法把實(shí)例化的工作推遲到子類中去實(shí)現(xiàn) 什么情況下適合: 有一組類似的對(duì)象需要?jiǎng)?chuàng)建 在編碼時(shí)不能預(yù)見需要?jiǎng)?chuàng)建哪種類的實(shí)例 系統(tǒng)需要考慮擴(kuò)展性, 不應(yīng)依賴于產(chǎn)品實(shí)例如何被創(chuàng)建,組合和表達(dá)的細(xì)節(jié)查看全部
-
工廠方法模式和抽象工廠模式對(duì)比 。工廠模式是一種極端情況的抽象工廠模式,而抽象工廠模式可以看成是工廠模式的推廣 。工廠模式用來創(chuàng)建一個(gè)產(chǎn)品的等級(jí)結(jié)構(gòu),而抽象工廠模式是用來創(chuàng)建多個(gè)產(chǎn)品的等級(jí)結(jié)構(gòu)。 。工廠模式只有一個(gè)抽象產(chǎn)品類,而抽象工廠模式有多個(gè)抽象產(chǎn)品類。查看全部
-
工廠方法: 例子: 創(chuàng)建一個(gè)接口HairInterface,然后創(chuàng)建幾個(gè)實(shí)現(xiàn)類LeftHair,RightHair等, 接著創(chuàng)建HairFactory 這個(gè)工廠類(根據(jù)類型創(chuàng)建對(duì)象,根據(jù)類的名稱來產(chǎn)生對(duì)象,根據(jù)key來創(chuàng)建對(duì)象), 然后創(chuàng)建SunnyTest模擬客戶端。在里面做測(cè)試。 而根據(jù)key來創(chuàng)建對(duì)象,就先創(chuàng)建一個(gè)file:type.properties(鍵值對(duì)映射)。 然后在創(chuàng)建properties文件的讀取工具。最后測(cè)試查看全部
-
/** * properties文件的讀取工具 * @author Administrator * */ public class PropertiesReader { public Map<String,String> getProperties(){ Properties props=new Properties(); Map<String,String> map=new HashMap<String,String>(); try { InputStream in=getClass().getResourceAsStream("type.properties"); props.load(in); Enumeration en=props.propertyNames(); while (en.hasMoreElements()) { String key = (String) en.nextElement(); String property=props.getProperty(key); map.put(key, property); // System.out.println("key="+key+",property="+property); } } catch (IOException e) { e.printStackTrace(); } return map; } } public HairInterface getHairByKey(String key){ //通過key的方法來創(chuàng)建對(duì)象 Map<String,String> map=new PropertiesReader().getProperties(); HairInterface hair=(HairInterface) Class.forName(map.get(key)).newInstance(); return hair; }查看全部
-
什么情況下適合工廠模式? 有一組類似的對(duì)象需要?jiǎng)?chuàng)建。 在編碼時(shí)不能預(yù)見需要?jiǎng)?chuàng)建哪種類的實(shí)例。 系統(tǒng)需要考慮擴(kuò)展性,不應(yīng)依賴于產(chǎn)品類實(shí)例如何被創(chuàng)建、組合和表達(dá)的細(xì)節(jié)。查看全部
-
工廠模式的意圖: 定義一個(gè)接口來創(chuàng)建對(duì)象,但讓子類來決定哪些類需要被實(shí)例化。 工廠方法把實(shí)例化的工作推遲到子類中去實(shí)現(xiàn)。查看全部
-
什么是工廠模式: 實(shí)例化對(duì)象,用工廠方法代替new操作。 工廠模式包括工廠方法模式和抽象工廠模式。 抽象工廠模式是工廠方法模式的擴(kuò)展。查看全部
-
常見的工廠模式應(yīng)用: JDBC--統(tǒng)一數(shù)據(jù)庫訪問接口; spring beanfactory:BeanFactory 作為Spring的IoC容器查看全部
-
1.定義類似對(duì)象的接口:HairInterface 2.實(shí)現(xiàn)類:LeftHair,RightHair,MiddleHair 3.type.properties:left=package.classname 4.PropertiesReader:讀取type.properties文件的key-value 5.HairFactory.class: public HairInterface getHairByClassKey(String key){ Map<String,String> map = new PropertiesReader().getProperties(); HairInterface hair = Class.forName(map.get(key)).newInstance(); return hair; } 6.main方法: HairFactory fac = new HairFactory(); HairInterface hair = fac.getHairByClassKey("left"); //調(diào)用hair的方法查看全部
-
1.工廠模式--實(shí)例化對(duì)象,用工廠模式代替new;一個(gè)接口 工廠方法模式;抽象工程模式 2.工廠模式的意圖:定義一個(gè)接口創(chuàng)建對(duì)象,讓子類確定哪些類需要實(shí)例化 3.適合工廠模式的場(chǎng)景: 一組類似的對(duì)象需要?jiǎng)?chuàng)建; 在編碼時(shí)不能預(yù)見需要?jiǎng)?chuàng)建哪類的實(shí)例; 可擴(kuò)展性和低耦合性,不依賴于類實(shí)例的創(chuàng)建,組合,細(xì)節(jié)查看全部
-
抽象工廠模式類圖查看全部
-
工廠方法模式與抽象工廠模式的對(duì)比查看全部
-
使用工廠模式的場(chǎng)景:查看全部
舉報(bào)
0/150
提交
取消