博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式四之工厂模式1
阅读量:7167 次
发布时间:2019-06-29

本文共 1449 字,大约阅读时间需要 4 分钟。

  从学习设计模式以来,一直强调接口编程,依赖抽象而不是具体,但是每次看到new出新的对象,是不是就会有些疑问呢?怎么会这样,难道只能这样吗?似乎java中只提供了这种从类中生成对象的方式,不用怀疑,java确实只有这种基础的生成对象的方式,但是我们可以抽象它,使我们的调用代码在更高级的层面上来生成对象,根据不同的业务需求来获取对象。

  工厂模式有三种,一种是简单工厂,再有一种是工厂方法,最后一种是抽象工厂。

  简单工厂一般都写成静态工厂,如下,

  

package com.csshu.simple;/** * 工厂类代码,仅仅是简答的根据条件来生成代码,最后返回一个对象 * @author shujianhua * */public class Simeple {    private static Pizza pizza;    public static Pizza create(String type){        if (type.equals("1")){            pizza = new Pizza1();        } else if (type.equals("2")){            pizza = new Pizza2();        }else if (type.equals("3")){            pizza = new Pizza3();        }else if (type.equals("4")){            pizza = new Pizza4();        }else if (type.equals("5")){            pizza = new Pizza5();        }else if (type.equals("6")){            pizza = new Pizza6();        }        return pizza;    }}package com.csshu.simple;public class Pizza {    public void speak(){        System.out.println("i am a pizza parent");    }}package com.csshu.simple;public class Pizza1 extends Pizza{    @Override    public void speak() {        System.out.println("1");    }}package com.csshu.simple;public class Test {    public static void main(String[] args) {        Pizza pizza = Simeple.create("1");        pizza.speak();    }}

如上,即为简单工厂的方法,因为一般写作静态类,所以不能继承,不能通过子类改变方法。

  工厂方法稍做一步抽象,将生成推向推迟到子类中生成。

  抽象工厂,主要作用在于对大量的对象的集合,主要是对象方面的。

  工厂方法和抽象工厂待续---

 

转载于:https://www.cnblogs.com/likeshu/p/4993437.html

你可能感兴趣的文章