工廠模式:常用的工廠模式包括三種--簡單工廠、普通工廠以及抽象工廠模式。
1、簡單工廠模式:
package com.demo.******factory;//介面類
public inte***ce shape
package com.demo.******factory;public class circle implements shape
}
package com.demo.******factory;public class square implements shape
}
package com.demo.******factory;public class ******** implements shape
}
package com.demo.******factory;public class ******factory
//形狀工廠,根據enum引數決定返回哪種形狀
public shape getshape(enumshapes enumshapes)
return null;
}}
package com.demo.******factory;特點:工廠類負責接收執行引數,而具體的執行則交給實現類,簡單易理解,但是違反了高內聚低耦合原則,不便於擴充套件,每次增加新的形狀都需要修改原有工廠方法,只能在簡單的業務場景中使用。public class ******factorydemo
}
2、普通工廠模式:
package com.demo.factory;import com.demo.******factory.shape;
public inte***ce shapefactory
package com.demo.factory;import com.demo.******factory.circle;
import com.demo.******factory.shape;
public class circlefactory implements shapefactory
}
package com.demo.factory;import com.demo.******factory.shape;
import com.demo.******factory.square;
public class squarefactory implements shapefactory
}
package com.demo.factory;import com.demo.******factory.shape;
import com.demo.******factory.********;
public class ********factory implements shapefactory
}
package com.demo.factory;特點:在工廠類(shapefactory)的子類(circlefactory)實現類中完成物件的例項化,把選擇權交給子類,將業務邏輯交給客戶端處理(factorydemo),符合開閉原則,且封裝物件的建立,擴充套件性較高,增加乙個新形狀只需要增加乙個新的形狀工廠即可(rectanglefactory)。public class factorydemo
}
3、抽象工廠模式:
package com.demo.abstractfactory;public inte***ce shoes
package com.demo.abstractfactory;public inte***ce tshirt
package com.demo.abstractfactory;public class nikeshoes implements shoes
}
package com.demo.abstractfactory;public class niketshirt implements tshirt
}
package com.demo.abstractfactory;public class adidasshoes implements shoes
}
package com.demo.abstractfactory;public class adidastshirt implements tshirt
}
package com.demo.abstractfactory;public inte***ce abstractfactory
package com.demo.abstractfactory;public class nikefactory implements abstractfactory
@override
public tshirt creattshirt()
}
package com.demo.abstractfactory;public class adidasfactory implements abstractfactory
@override
public tshirt creattshirt()
}
package com.demo.abstractfactory;特點:抽象工廠提供乙個或建立一系列相關或相互依賴物件的介面,而無需指定它們的類,主要用於解決介面選擇問題,乙個產品族(nike)的物件只能使用同族的產品(nike shoes,nike tshirt)。對新種類的產品擴充套件性較差(shorts,nikeshorts,adidasshorts,並在三個factory中新增介面方法與實現方法),新族的擴充套件性較高。public class abstractfactorydemo
}
設計模式學習 工廠模式
工廠模式是較常見的一種設計模式 一 基本特點 工廠模式可分為簡單工廠模式,工廠模式和抽象工廠模式,它們的思路和實現都很相似.基本特點為至少包括以下三個類 工廠類 用new操作符建立各種產品類 抽象產品類 各產品類的基類,定義了產品的介面,具體產品類 抽象產品類的子類,包含了具體實現 使用者在使用時通...
設計模式學習(工廠模式)
這裡說的工廠模式是簡單工廠模式和抽象工廠模式,兩者有一定的區別,也有共同之處。上述過程是開閉原則的乙個典型體現。在下圖的例子中,factory類依賴具體物件的抽象來建立具體的物件 dell,sony 這乙個過程帶來的好處就是實現了factory類與具體產品之間的解耦合。客戶端可以自由的通過facto...
設計模式 工廠模式(學習)
在程式的世界裡,就像射鵰英雄傳一樣,我們的技能就像是武功一樣,我們只有不斷去學習練習才能有機會像郭靖一樣成為 天下第一 我認為技能和武功是很類似的,也有外功和內功,武俠之內功好比是我們技能演算法 武俠的外功好比是我們技能中某一語言的語法 武功秘籍好比是我們每種語言都有api和文件 武俠的勤加練習好比...