java设计模式:抽象工厂模式

抽象工厂模式:

概念: 提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。

在抽象工厂模式结构图中包含如下几个角色:

  • AbstractFactory(抽象工厂):它声明了一组用于创建一族产品的方法,每一个方法对应一种产品。
  • ConcreteFactory(具体工厂):它实现了在抽象工厂中声明的创建产品的方法,生成一组具体产品,这些产品构成了一个产品族,每一个产品都位于某个产品等级结构中。
  • AbstractProduct(抽象产品):它为每种产品声明接口,在抽象产品中声明了产品所具有的业务方法。
  • ConcreteProduct(具体产品):它定义具体工厂生产的具体产品对象,实现抽象产品接口中声明的业务方法。
/**
 * 抽象工厂模式
 */

/**
 * 工厂的接口
 */
interface HumanFactory{
    MakeMoney getMakeMoney();
}

/**
 * 赚钱的接口
 */
interface MakeMoney{
    void doMakeMoney();
}

/**
 * 分别实现男人和女人的接口实现
 */
class ManFactory implements HumanFactory{

    @Override
    public MakeMoney getMakeMoney() {
        return new ManMakeMoney();
    }
}

class WomanFactory implements HumanFactory{

    @Override
    public MakeMoney getMakeMoney() {
        return new WomanMakeMoney();
    }
}

/**
 * 分别实现男人和女人的接口实现
 */
class ManMakeMoney implements MakeMoney{

    @Override
    public void doMakeMoney() {
        System.out.println("男人赚钱!");
    }
}

class WomanMakeMoney implements MakeMoney{

    @Override
    public void doMakeMoney() {
        System.out.println("女人赚钱!");
    }
}

public class Factory {

    public static void main(String[] args) {
        HumanFactory manMake = new ManFactory();
        manMake.getMakeMoney().doMakeMoney();
        HumanFactory womanMake = new WomanFactory();
        womanMake.getMakeMoney().doMakeMoney();
    }
}

猜你喜欢

转载自blog.csdn.net/yhflyl/article/details/80849037