工厂模式,简单的说就是把创建对象的过程封装起来,封装到一个所谓的工厂中。根据封装程度分为:简单工厂模式、工厂方法模式、抽象工厂模式。
为了避免文章过于冗长,这篇主要讲解前两种模式,第三种留到下一篇讲解。
简单工厂类图:
角色:
工厂:用来生产产品,描述工厂的整个流程,调用简单抽象工厂的方法生产产品。
简单抽象工厂:将new对象的过程封装在其中
抽象产品:一个抽象产品。
具体产品:继承抽象产品类。
应用:
工厂模式有一个工厂主线和产品主线,该实例为一个生产pizza的系统,
工厂:
简单抽象工厂:
抽象产品:
具体产品:
测试类:
为了迎合不用地区人民的不同口味,可以继承抽象工厂出现具体工厂,这样就成了工厂方法模式,,
类图:
角色:
抽象工厂:用来生产产品,描述工厂的整个流程,调用具体工厂的方法生产产品。
具体工厂:将new对象的过程封装在其中
抽象产品:一个抽象产品。
具体产品:继承抽象产品类。
应用:
在上面应用实例的基础上,把工厂变为抽象类,通过继承抽象工厂产生了两个New York风味的pizza和Chicago
风味的pizza。
抽象工厂:
具体工厂:
抽象产品:
具体产品:
测试类: