抽象工厂

一、工厂方法

1、工厂方法四要素:抽象工厂、具体工厂、抽象产品、具体产品

2、抽象工厂中定义抽象方法,这些方法是每个产品族都要实现的方法,返回类型为抽象对象

    产品族:每个工厂要生产几个对象,这些对象为一个产品族

   具体工厂为抽象工厂的实现,具体工厂继承抽象工厂的每一个方法,返回对应抽象产品(返回产品对象)

   抽象产品定义了具体产品需要继承的方法

   具体产品根据自身的业务逻辑去实现

 

 二、代码

抽象工厂
public abstract class AbstractFactory {

    abstract Food eat();

    abstract Shoot shoot();
}
具体工厂  这只是一个具体工厂,还可以有多个具体工厂的实现,这里可以继续继承抽象工厂
public class ModernFactory extends AbstractFactory{
    @Override
    public Food eat() {
        return new Bread();
    }

    @Override
    Shoot shoot() {
        return new Ak47();
    }
}
抽象对象
public abstract class Shoot {

    abstract void getShootName();
}

public abstract class Food {

    abstract void printName();
}
具体对象
public class Ak47 extends Shoot{
    @Override
    void getShootName() {
        System.out.println("tutututu");
    }
}

public class Bread extends Food{
    @Override
    void printName() {
        System.out.println("bread");
    }
}
main方法
public class Main {
    public static void main(String[] args) {
        AbstractFactory abstractFactory = new ModernFactory();
        Food eat = abstractFactory.eat();
        eat.printName();
        Shoot shoot = abstractFactory.shoot();
        shoot.getShootName();
    }
}

 

posted @ 2022-02-27 22:29  showMeTheCodes  阅读(77)  评论(0编辑  收藏  举报