《大话设计模式》java实现之工厂方法模式

来源:互联网 发布:win7公用网络点不了 编辑:程序博客网 时间:2024/05/29 03:48

UML图
这里写图片描述
代码结构图
这里写图片描述
书中72页的UML图中运算类是abstract类型,但是在实现时LeiFeng类却不写成abstract,我觉得可能是个错误,这里写了abstract

public class Client {    public static void main(String[] args) {        IFactory factory = new UndergrateFactory();        LeiFeng student = factory.createLeiFeng();        student.sweep();    }}
public interface IFactory {    LeiFeng createLeiFeng();}
public abstract class LeiFeng {    public abstract void sweep();}
public class Undergraduate extends LeiFeng {    @Override    public void sweep() {        System.out.println("学雷锋的大学生扫地");    }}
public class UndergrateFactory implements IFactory {    @Override    public LeiFeng createLeiFeng() {        return new Undergraduate();    }}
public class Volunteer extends LeiFeng {    @Override    public void sweep() {        System.out.println("志愿者扫地");    }}
public class VolunteerFactory implements IFactory {    @Override    public LeiFeng createLeiFeng() {        return new Volunteer();    }}

工厂模式一共有三种:简单工厂、工厂方法、抽象工厂模式
简单工厂是只有一个工厂,用工厂类来实例化对象,比较简单,工厂方法模式一个工厂只生产一个产品,抽象工厂模式是产品族的概念,一个工厂生产多个产品。

阅读全文
0 0