美文网首页
工厂系列

工厂系列

作者: zzj0990 | 来源:发表于2021-01-13 18:33 被阅读0次

    1.概念

    任何产生对象的方法或类,都可以叫做工厂

    2. 简单工厂的可扩展性不好

    没啥好说的,呵呵

    3. 工厂方法 - 单产品

    有利于产品的扩展,即加对应的工厂

    屏幕快照 2021-01-13 下午6.01.21.png

    4. 抽象工厂 - 产品族

    适用场景:换皮肤等
    有利于产品族的扩展,但在产品的方向不好扩展

    4.1 类图

    屏幕快照 2021-01-13 下午5.27.12.png

    抽象工厂:

    public abstract class AbastractFactory {
        abstract Food createFood();
        abstract Vehicle createVehicle();
        abstract Weapon createWeapon();
    }
    

    抽象产品 - Food:

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

    抽象产品 - Vehicle:

    public abstract class Vehicle {
        abstract void go();
    }
    

    抽象产品 - Weapon:

    public abstract class Weapon {
        abstract void shoot();
    }
    

    具体产品 - Bread:

    public class Bread extends Food{
        public void printName() {
            System.out.println("wdm");
        }
    }
    

    具体产品 - Car:

    public class Car extends Vehicle{
    
        public void go() {
            System.out.println("Car go wuwuwuwuw....");
        }
    }
    

    具体产品 - AK47:

    public class AK47 extends Weapon{
        public void shoot() {
            System.out.println("tututututu....");
        }
    }
    

    具体工厂 - ModernFactory:

    public class ModernFactory extends AbastractFactory {
        @Override
        Food createFood() {
            return new Bread();
        }
        @Override
        Vehicle createVehicle() {
            return new Car();
        }
        @Override
        Weapon createWeapon() {
            return new AK47();
        }
    }
    

    client调用:

    public class Main {
        public static void main(String[] args) {
            AbastractFactory f = new ModernFactory();
            Vehicle c = f.createVehicle();
            c.go();
            Weapon w = f.createWeapon();
            w.shoot();
            Food b = f.createFood();
            b.printName();
        }
    

    ————————————————————
    坐标帝都,白天上班族,晚上是知识的分享者
    如果读完觉得有收获的话,欢迎点赞加关注

    相关文章

      网友评论

          本文标题:工厂系列

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