前言
- 上文我们提到了工厂模式,那种模式在具体点应该称之为简单工厂模式。简单工厂模式是工厂内部消化衣服种类进行生产。生产始终是在工厂中。
- 而工厂方法模式是将生产进行对应的细分。衣服种类对应不同的子类,然后工厂是针对不同的子类提供不同的子类工厂。
- 比如现在开发一个春季服装厂,他的作用只生成春季服装;在开发一个夏季服装厂只生产夏季服装;以此类推
服装厂
- 和简单工厂一样,在服装上的定义不变。我们同样拥有一个抽象服装类,和春夏秋冬四个子类。
- 这里我们将原来的工厂进行抽象化,提供一个工厂接口。
public interface ClothFactory
{
public abstract Clothes createClothes();
}
- CLothFactory存在的意义就是规范。规定下属工厂必须存在这样一种规范。翻译过来就是子类工厂必须提供一个生产衣服的功能。衣服的功能属性是根据工厂属性赋能的,但是必须生成出来两个袖口一个领口的规范服装。
春装工厂
public class SpringClothFactory implements ClothFactory
{
@Override
public Clothes createClothes()
{
Clothes clothes=null;
clothes=new SpringCloth();
return clothes;
}
}
- 首先我们春装工厂上线,内部就是生产春装。内部可以在根据自己的特色进行丰富服装的特色。不管内部如何丰富他是始终无法摆脱服装的规范的。
- 同样的夏装工厂、秋装工厂、冬装工厂都是一样的套路。
测试
public class client
{
public static void main(String[] args)
{
ClothFactory clothFactory=new SpringClothFactory();
Clothes clothes = clothFactory.createClothes();
clothes.hold();
}
}
- 这样的好处是,工厂内部管理变得明朗很多。客户需要哪种衣服直接找到对应的工厂就可以生产了。不在想简单工厂一样不管啥衣服都得找一个工厂。一个工厂对外提供能力是有限的。
总结
- 工厂模式现在我们学习了两种,一种简单工厂模式,另外一种是工厂方法模式;实际上工厂方法模式是对简单模式的升级,将种类进行分门别类的生产。这样能够提高工厂的性价比。
- 不管三七二十一都找同一个工厂。工厂的吞吐量很是受影响的。但是将工厂进行分为字母工厂。这样母公司负责规范,子公司负责生产。两不相误