当前位置:网站首页>AbstractFactory Abstract Factory

AbstractFactory Abstract Factory

2022-06-25 22:04:00 Daily enlightenment

Easy to extend the product family .

(1)AbastractFactory

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

(2)Weapon 

Adjectives use interfaces , Nouns use abstract classes .

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

(3)Vehicle 

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

 (4)Food 

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

(5)ModernFactory

public class ModernFactory extends AbastractFactory {
    @Override
    Food createFood() {
        return new Bread();
    }

    @Override
    Vehicle createVehicle() {
        return new Car();
    }

    @Override
    Weapon createWeapon() {
        return new AK47();
    }
}

(6) AK47 

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

(7)Car 

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

(8)Bread 

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

(9)MagicFactory

public class MagicFactory extends AbastractFactory {
    @Override
    Food createFood() {
        return new MushRoom();
    }

    @Override
    Vehicle createVehicle() {
        return new Broom();
    }

    @Override
    Weapon createWeapon() {
        return new MagicStick();
    }
}

(10)MagicStick 

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

(11)Broom 

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

(12)MushRoom 

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

(13)Main

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

版权声明
本文为[Daily enlightenment]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202181132150764.html