美文网首页
Java 设计模式3-抽象工厂模式

Java 设计模式3-抽象工厂模式

作者: 顺应自然y | 来源:发表于2019-08-06 22:24 被阅读0次

抽象工厂模式是工厂方法模式的升级版。工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。

类似于下面这种方式:

(1) 抽象工厂接口:提供了产品的生成方法。

interface AbstractFactory
{
    public Product1 newProduct1();
    public Product2 newProduct2();
}

(2) 具体工厂:实现了产品的生成方法。

class createFactory1 implements AbstractFactory
{
    public Product1 newProduct1()
    {
        System.out.println("工厂 1 生成-->具体产品 11...");
        return new createProduct11();
    }
    public Product2 newProduct2()
    {
        System.out.println("工厂 1 生成-->具体产品 21...");
        return new createProduct21();
    }
}

对之前的工厂方法模式进行改造:

public interface Cat {
    void eat();
}

public interface Dog {
    void eat();
}
public class WhiteCat implements Cat {

    @Override
    public void eat() {
        // TODO Auto-generated method stub
        System.out.println("whiteCat eat");
    }

}
public class BlackCat implements Cat {

    @Override
    public void eat() {
        // TODO Auto-generated method stub
        System.out.println("BlackCat eat");
    }

}
public class WhiteDog implements Dog {

    @Override
    public void eat() {
        // TODO Auto-generated method stub
        System.out.println("whiteDog eat");

    }

}
public class BlackDog implements Dog{

    @Override
    public void eat() {
        // TODO Auto-generated method stub
        System.out.println("BlackDog  eat");
    }

}

工厂类的接口,生产两个等级的产品


public interface AnimalFactory {

    Cat createCat();

    Dog createDog();

}


不同的工厂类:

public class BlackAnimalFactory implements AnimalFactory {

    @Override
    public Cat createCat() {
        // TODO Auto-generated method stub
        return new BlackCat();
    }

    @Override
    public Dog createDog() {
        // TODO Auto-generated method stub
        return new BlackDog();
    }

}

public class WhiteAnimalFactory implements AnimalFactory{

    @Override
    public Cat createCat() {
        // TODO Auto-generated method stub
        return new WhiteCat();
    }

    @Override
    public Dog createDog() {
        // TODO Auto-generated method stub
        return new WhiteDog();
    }

}

测试类:


public class AnimalTest {

    public static void main(String[] args) {
        AnimalFactory blakAnimalFactory = new BlackAnimalFactory();
        Cat blackCat=blakAnimalFactory.createCat();
        blackCat.eat();
        
        AnimalFactory whiteAnimalFactory = new WhiteAnimalFactory();
        Cat whiteCat=whiteAnimalFactory.createCat();
        whiteCat.eat();

    }
}

结果:


BlackCat eat
whiteCat eat

相关文章

  • Java设计模式教程

    Java设计模式教程 Java工厂设计模式 Java抽象工厂模式 Java单例模式 Java建造者(Builder...

  • 设计模式系列-抽象工厂模式

    JAVA设计模式系列: 单例模式 观察者模式 模板方法模式 简单工厂模式 抽象工厂模式 抽象工厂模式 定义 抽象工...

  • 代码段简单学习设计模式 -- 抽象工厂模式

    《JAVA与模式》之抽象工厂模式 大话设计模式 抽象工厂模式(Abstraci Factory): 提供一个创...

  • Java设计模式系列-抽象工厂模式

    原创文章,转载请标注出处:《Java设计模式系列-抽象工厂模式》 一、概述 抽象工厂模式是对工厂方法模式的再升级,...

  • 设计模式——工厂模式和抽象工厂模式

    Java设计模式——工厂模式 工厂模式和抽象工厂模式都属于创建型模式。 创建型模式这些设计模式提供了一种在创建对象...

  • 设计模式四、抽象工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 抽象工厂模式 ...

  • Java 设计模式3-抽象工厂模式

    抽象工厂模式是工厂方法模式的升级版。工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。 类似于...

  • 常用设计模式

    设计模式 工厂模式 工厂模式思路上分:简单工厂模式,工厂模式, 抽象工厂模式// 抽象工厂模式可以代替工厂模式,做...

  • 单件设计模式

    一、定义 设计模式 设计模式就是一种更好的编写代码方案。 常见设计模式 工厂设计模式、抽象工厂设计模式、抽象工厂设...

  • Java与模式

    《JAVA与模式》之简单工厂模式《JAVA与模式》之工厂方法模式《JAVA与模式》之抽象工厂模式

网友评论

      本文标题:Java 设计模式3-抽象工厂模式

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