设计模式【工厂方法模式】+ 字母结合,各司其职

142 阅读2分钟

前言

  1. 上文我们提到了工厂模式,那种模式在具体点应该称之为简单工厂模式。简单工厂模式是工厂内部消化衣服种类进行生产。生产始终是在工厂中。
  2. 而工厂方法模式是将生产进行对应的细分。衣服种类对应不同的子类,然后工厂是针对不同的子类提供不同的子类工厂。
  3. 比如现在开发一个春季服装厂,他的作用只生成春季服装;在开发一个夏季服装厂只生产夏季服装;以此类推

服装厂

  • 和简单工厂一样,在服装上的定义不变。我们同样拥有一个抽象服装类,和春夏秋冬四个子类。
  • 这里我们将原来的工厂进行抽象化,提供一个工厂接口。
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)
    {
        //需要春装,且知道春装是SpringClothFactory工厂生产的
        ClothFactory clothFactory=new SpringClothFactory();
        Clothes clothes = clothFactory.createClothes();
        clothes.hold();
    }
}
  • 这样的好处是,工厂内部管理变得明朗很多。客户需要哪种衣服直接找到对应的工厂就可以生产了。不在想简单工厂一样不管啥衣服都得找一个工厂。一个工厂对外提供能力是有限的。

总结

  • 工厂模式现在我们学习了两种,一种简单工厂模式,另外一种是工厂方法模式;实际上工厂方法模式是对简单模式的升级,将种类进行分门别类的生产。这样能够提高工厂的性价比。
  • 不管三七二十一都找同一个工厂。工厂的吞吐量很是受影响的。但是将工厂进行分为字母工厂。这样母公司负责规范,子公司负责生产。两不相误