抽象工厂模式

抽象工厂模式

简单工厂模式
工厂方法模式
抽象工厂简单实现数据库连接池

1.定义:

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

2.用途:

使用抽象工厂创建同一个产品族的产品

3.产品族与产品等级结构

在这里插入图片描述

可以这样理解:

产品等级结构:空心椭圆是手机,实心椭圆是手表,实心矩形是电脑

产品族:华为、苹果、小米

那么抽象工厂实现的就是创建同一个品牌的不同产品

4.抽象工厂的四个角色

抽象工厂:声明创建抽象对象产品对象的一个接口

具体工厂:实现创建具体产品对象的操作

抽象对象:为一类产品对象声明一个接口

具体对象:定义一个将被相应具体工厂创建的产品对象。

5.抽象工厂模式的简单实现
public interface IFactory {//抽象工厂
	Phone makePhone();//创建手机
	Watch makeWatch();//创建手表
}

public class HuaWei implements IFactory {//华为
	@Override
	public Phone makePhone() {
		return new PhoneWithHuaWei();//创建华为手机
	}
	@Override
	public Watch makeWatch() {//创建华为手表
		return new WatchWithHuaWei();
	}
}
public class PingGuo implements IFactory {//苹果
	@Override
	public Phone makePhone() {//创建苹果手机
		return new PhoneWithPingGuo();
	}
	@Override
	public Watch makeWatch() {//创建苹果手表
		return new WatchWithPingGuo();
	}
}
public interface Phone {//手机
	void doA();
}
public interface Watch {//手表
	void doB();
}
public class PhoneWithHuaWei implements Phone {//华为手机
	@Override
	public void doA() {
		System.out.println("华为手机");
	}
}
public class PhoneWithPingGuo implements Phone {//苹果手机
	@Override
	public void doA() {
		System.out.println("苹果手机");
	}
}
public class WatchWithHuaWei implements Watch {//华为手表
	@Override
	public void doB() {
		System.out.println("华为手表");
	}
}
public class WatchWithPingGuo implements Watch {//苹果手表
	@Override
	public void doB() {
		System.out.println("苹果手表");
	}
}
public class Client {
	public static void main(String[] args) {
		//华为创建华为的产品
		IFactory huaWei = new HuaWei();
		Phone hwPthone = huaWei.makePhone();
		Watch hwWatch = huaWei.makeWatch();
		
		//苹果创建苹果的产品
		IFactory pingGuo = new PingGuo();
		Phone pgPhone = pingGuo.makePhone();
		Watch pgWatch = pingGuo.makeWatch();
		
		hwPthone.doA();
		hwWatch.doB();
		pgPhone.doA();
		pgWatch.doB();
		
	}
	
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值