• Java工厂模式浅析理解


    由于本人缺乏工作经验,本篇文章作为随笔,只是对工厂模式有一个简单的认识

    工厂模式分为以下三种:

    1:简单工厂(Simple Factory)。
    2:工厂方法(Factory Method)。
    3:抽象工厂(Abstract Factory)。

    本次模拟的是第三种——抽象工厂

    抽象工厂的大致思路

      多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
      一个抽象工厂类,可以派生出多个具体工厂类。
       每个具体工厂类可以创建多个具体产品类的实例。

    好了,不多说,根据上面的思路来贴一下部分代码

    在这里,我是以汽车、食物两种类别来进行模拟

    汽车——宝马、奔驰

    食物——苹果、橘子

    首先编写食物类,在这里,我将Food作为抽象类(也可作为接口)

    public abstract class Food {
    
        public abstract void eat();
    }

    汽车也一样

    public abstract class Car {
    
        public abstract void creat();
    }

    然后将,宝马,奔驰继承Car ,橘子,苹果继承食物

    public class Apple extends Food{
    
        public Apple() {
            super();
            this.eat();
        }
        @Override
        public void eat() {
            System.out.println("Apple...eat");
            
        }
    
    }
    public class Benz extends Car{
    
        @Override
        public void creat() {
            System.out.println("benz...creat");
        }
    
    }
    public class Orange extends Food{
    
        @Override
        public void eat() {
            System.out.println("Orange...eat");        
        }
    public class BMW  extends Car{
    
        @Override
        public void creat() {
            System.out.println("BMW...creat");       
        }
    
    }

    然后,下一个思路就是将工厂分为A和B 实现分类显示的功能,在这里我将Apple和BMW作为FactoryA ,Orange和Benz作为FactoryB

    并且,将FactoryA和FactoryB实现Factory的接口以实现分类的效果

    public class Factory1 implements Factory {
        public Car creat() {
            return new Benz();
        }
        public Food eat() {
            return new Apple();
        }
    
    }

    至此,以达到需要的效果

    当调用FactoryA时,控制台打印出Apple,BMW  

    当调用FactoryA时,控制台打印出Orange,Benz

    声明:本篇文章理解于 http://www.cnblogs.com/zhouqiang/archive/2012/07/20/2601365.html的思路,但其中也融合了本人的思路。

    如有其他意见,请评论版上评论,谢谢

  • 相关阅读:
    【深度学习】RNN | GRU | LSTM
    深度学习中优化【Normalization】
    Transformer【Attention is all you need】
    假期第二十三天加机器学习十讲二
    假期第二十二天加机器学习十讲一
    《架构之美》读书笔记二
    假期第二十一天
    假期第二十天
    假期第十九天
    假期第十八天
  • 原文地址:https://www.cnblogs.com/ChoviWu/p/7338784.html
Copyright © 2020-2023  润新知