设计模式——工厂方法

1. 简介

  工厂方法是一种创建型模式,它定义一个创建对象的接口,让子类决定实例化哪一个类,可以使一个类的实例化延迟到其子类。它具有良好的扩展性,当有新产品类增加时,只需要新增一个具体的工厂类。调用者也不需要关心具体的产品及其创建过程,只需要知道它的接口。

2. UML类图

《设计模式——工厂方法》

  Product是一个产品接口,ConcreteProduct是具体的产品,Creator声明工厂方法,返回一个Product类型的对象,ConcreteCreator是具体工厂,定义了工厂方法,返回一个具体的Product。

3. 实例

Product接口:

public interface Phone {
    void show();
}

具体产品:

public class IPhone implements Phone {
    public void show() {
        System.out.println("apple phone");
    }
}

public class Galaxy implements Phone {
    public void show() {
        System.out.println("samsung phone");
    }
}

抽象工厂:

public interface Creator {
    Phone createPhone();
}

具体工厂:

public class AppleCreator implements Creator {
    public Phone createPhone() {
        return new IPhone();
    }
}

public class SamsungCreator implements Creator {
    public Phone createPhone() {
        return new Galaxy();
    }
}

测试

public class Test {
    public static void main(String[] args) {
        Creator creator = new SamsungCreator();
        Phone phone = creator.createPhone();
        phone.show();
    }
}
    原文作者:设计模式
    原文地址: https://segmentfault.com/a/1190000015754801
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞