栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java创建型模式——抽象工厂模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java创建型模式——抽象工厂模式

创建型模式-抽象工厂模式 抽象工厂模式案例 抽象工厂模式定义

抽象工厂模式在工厂方法模式做了一次封装

官方类图

产品族图

抽象工厂模式图

类图

代码实现抽象工厂模式案例

业务描述:

创建华为生产手机类
package com.gun.java23mvc.factory.abstracts;

public class HuaWeiPhone implements IPhoneProduct{

	@Override
	public void start() {
		System.out.println("华为开机");
	}

	@Override
	public void shutdown() {
		System.out.println("华为关机机");
	}

	@Override
	public void callUp() {
		System.out.println("华为手机打电话");		
	}

	@Override
	public void sendSMS() {
		System.out.println("华为手机发送短信");		
	}

}

创建生产华为路由器
package com.gun.java23mvc.factory.abstracts;

public class HuaWeiRouter implements IRouterProduct{

	@Override
	public void start() {
		System.out.println("开启华为路由器");			
	}

	@Override
	public void shutdown() {
		System.out.println("关闭华为路由器");			
	}

	@Override
	public void openWifi() {
		System.out.println("打开华为wifi");			
	}

	@Override
	public void setting() {
		System.out.println("设置华为路由器");		
	}

}
创建生产小米手机
package com.gun.java23mvc.factory.abstracts;

public class XiaomiPhone implements IPhoneProduct{

	@Override
	public void start() {
		System.out.println("小米打开机");			
	}

	@Override
	public void shutdown() {
		System.out.println("小米打关机");		
	}

	@Override
	public void callUp() {
		System.out.println("小米打电话");
	}

	@Override
	public void sendSMS() {
		System.out.println("小米发送短信");	
	}
	
}
创建小米生产路由器
package com.gun.java23mvc.factory.abstracts;

public class XiaomiRouter implements IRouterProduct{

	public void start() {
		System.out.println("开启小米路由器");			
	}

	@Override
	public void shutdown() {
		System.out.println("关闭小米路由器");			
	}

	@Override
	public void openWifi() {
		System.out.println("打开小米wifi");			
	}

	@Override
	public void setting() {
		System.out.println("设置小米路由器");		
	}

}

创建手机生产接口
package com.gun.java23mvc.factory.abstracts;


public interface IPhoneProduct {
	
	public void start();//开机
	public void shutdown();//关机
	public void callUp();//打电话
	public void sendSMS();//发送短信
	

}

创建路由器生产接口
package com.gun.java23mvc.factory.abstracts;

public interface IRouterProduct {
	public void start();//开机
	public void shutdown();//关机
	public void openWifi();//打开wifi
	public void setting();//设置Wifi
}

创建统一抽象工厂生产接口
package com.gun.java23mvc.factory.abstracts;

public interface IProductFactory {

	//生产手机
	IPhoneProduct iphoneProduct();
	//生产路由器
	IRouterProduct iRouterProduct();
} 

创建华为工厂
package com.gun.java23mvc.factory.abstracts;


public class HuaWeiFactory implements IProductFactory{

	@Override
	public IPhoneProduct iphoneProduct() {
		return new HuaWeiPhone();
	}

	@Override
	public IRouterProduct iRouterProduct() {
		return new HuaWeiRouter();
	}

}

创建小米工厂
package com.gun.java23mvc.factory.abstracts;

public class XiaomiFactory implements IProductFactory{

	@Override
	public IPhoneProduct iphoneProduct() {
		return new XiaomiPhone();
	}

	@Override
	public IRouterProduct iRouterProduct() {
		return new XiaomiRouter();
	}

}

客户端测试抽象工厂模式
package com.gun.java23mvc.factory.abstracts;

public class TestUserClient {
	public static void main(String[] args) {
		
		XiaomiFactory xiaomi = new XiaomiFactory();
		
		IPhoneProduct product = xiaomi.iphoneProduct();
		product.callUp();
		product.sendSMS();
		
		IRouterProduct router = xiaomi.iRouterProduct();
		router.setting();
		
		System.out.println("************************************");
		//华为手机
		HuaWeiFactory huawei = new HuaWeiFactory();
		IPhoneProduct huaweiP = huawei.iphoneProduct();
		
		huaweiP.callUp();
		huaweiP.sendSMS();
		//华为路由器
		IRouterProduct routerp = huawei.iRouterProduct();
		routerp.setting();
	}

}

输出结果:
小米打电话
小米发送短信
设置小米路由器
************************************
华为手机打电话
华为手机发送短信
设置华为路由器
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/871979.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号