美文网首页
抽象工厂模式

抽象工厂模式

作者: Doter | 来源:发表于2018-08-20 23:03 被阅读0次

工厂模式只能生产一种商品,如果一个工厂生产多种商品呢?

抽象工厂模式,实现工厂生产多种商品

java代码实例:

  1. 产品:键盘抽象及实现
// 为了简写所以将抽象及实现放置在一起
public interface KeyBoard {
    public String getName();
}
public class AKeyBoard implements KeyBoard {
    @Override
    public String getName() {
        return "this is A keyboard";
    }
}
public class BKeyBoard implements KeyBoard {
    @Override
    public String getName() {
        return "this is A keyboard";
    }
}
  1. 产品:鼠标抽象及实现
public interface Mouse {
    public String getName();
}

public class AMouse implements Mouse {
    @Override
    public String getName() {
        return "this is A mouse";
    }
}

public class BMouse implements Mouse {
    @Override
    public String getName() {
        return "this is B mouse";
    }
}
  1. 抽象工厂
public interface Factory {
    KeyBoard createKeyBoard();
    Mouse createMouse();
}
  1. 工厂的实现

public class AFactory implements Factory {
    @Override
    public KeyBoard createKeyBoard() {
        return new AKeyBoard();
    }
    @Override
    public Mouse createMouse() {
        return new AMouse();
    }
}

public class BFactory implements Factory {
    @Override
    public KeyBoard createKeyBoard() {
        return new BKeyBoard();
    }
    @Override
    public Mouse createMouse() {
        return new BMouse();
    }
}
  1. 调用
public class Main {
    public static void main(String[] args) {
        AFactory aFactory = new AFactory();
        System.out.println(aFactory.createKeyBoard().getName());

        BFactory bFactory = new BFactory();
        System.out.println(bFactory.createMouse().getName());
    }
}

使用场景:

  1. 换肤操作

思考:如果现在需要添加一个新的工厂C来生产键盘,鼠标该如何实现?

相关文章

网友评论

      本文标题:抽象工厂模式

      本文链接:https://www.haomeiwen.com/subject/mveriftx.html