DesignPatternStudy.AbstractFactory
Directory actions
More options
Directory actions
More options
DesignPatternStudy.AbstractFactory
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
抽象工厂的应用 优点 1、封装性,高层不用关心产品的实现类,只需关心工厂; 2、产品族内的约束是非公开状态,由各自工厂负责; 缺点 1、产品族扩展及其困难和复杂,违反开闭原则; 使用场景 1、工厂是独立的(独立的类); 2、工厂是生产一整套有产品的(至少要生产两个产品),这些产品必须相互是有关系或有依赖的; 3、工厂是可以抽象的,工厂生产是可以抽象的; 4、产品是可以抽象的,产品关系是可以抽象的; 5、客户端是用来调用并理顺这些产品之间的关系(或指定工作流程); 6、不同工厂生产出的产品实例之间是不接触的,这个是靠客户端来封装实现的; 7、当产品非常多的时候,产品之间关系又非常复杂,但却又可以进行抽象的时候,就是使用抽象工厂模式最好的时候了; 补充:抽象工厂和工厂方法的不同 1、从字面意思上来看,抽象工厂的工厂就是一个类,而工厂方法中的工厂是一个方法; 2、关注点不一样,抽象工厂关键在于产品之间的抽象关系,所以至少要两个产品;工厂方法在于生成产品,不关注产品间的关系,所以可以只生成一个产品; 3、抽象工厂中客户端把产品的抽象关系理清楚,在最终使用的时候,一般使用客户端(和其接口),产品之间的关系是被封装固定的;而工厂方法是在最终使用的时候,使用产品本身(和其接口);