抽象工厂
一、 简单介绍二、抽象工厂(代码实现)
一、 简单介绍
二、抽象工厂(代码实现)
package factory
.abstract1
;
public class Client {
public static void main(String
[] args
) {
System
.out
.println("======小米产品=========");
XiaomiFactory xiaomiFactory
=new XiaomiFactory();
IphoneProduct iphoneProduct
=xiaomiFactory
.IProductProduct() ;
iphoneProduct
.callup();
iphoneProduct
.sendSMS();
IRouterProduct iRouterProduct
=xiaomiFactory
.routerProduct();
iRouterProduct
.openwifi();
System
.out
.println("====================华为系列产品===========");
HuaweiFactory huaweiFactory
=new HuaweiFactory();
iphoneProduct
=huaweiFactory
.IProductProduct();
iphoneProduct
.callup();
iphoneProduct
.sendSMS();
iRouterProduct
=huaweiFactory
.routerProduct();
iRouterProduct
.openwifi();
}
}
package factory
.abstract1
;
public class HuaweiFactory implements IProductFactory {
@Override
public IphoneProduct
IProductProduct() {
return new HuaweiPhone();
}
@Override
public IRouterProduct
routerProduct() {
return new HuaweiRouter();
}
}
package factory
.abstract1
;
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 factory
.abstract1
;
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("打开华为路由器");
}
@Override
public void setting() {
System
.out
.println("设置华为wifi");
}
}
package factory
.abstract1
;
public interface IphoneProduct {
void start();
void shutdown();
void callup();
void sendSMS();
}
package factory
.abstract1
;
public interface IProductFactory {
IphoneProduct
IProductProduct();
IRouterProduct
routerProduct();
}
package factory
.abstract1
;
public interface IRouterProduct {
void start();
void shutdown();
void openwifi();
void setting();
}
package factory
.abstract1
;
public class XiaomiFactory implements IProductFactory{
@Override
public IphoneProduct
IProductProduct() {
return new XiaomiPhone();
}
@Override
public IRouterProduct
routerProduct() {
return new XiaomiRouter();
}
}
package factory
.abstract1
;
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 factory
.abstract1
;
public class XiaomiRouter implements IRouterProduct{
@Override
public void start() {
System
.out
.println("启动小米路由器");
}
@Override
public void shutdown() {
System
.out
.println("关闭小米路由器");
}
@Override
public void openwifi() {
System
.out
.println("打开小米路由器");
}
@Override
public void setting() {
System
.out
.println("设置小米wifi");
}
}