美文网首页
抽象工厂模式

抽象工厂模式

作者: 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