您的位置:首页 > 其它

抽象工厂模式

2015-06-24 11:32 344 查看
抽象工厂模式

抽象工厂模式是将一个简单东西变为复杂的东西,但是这样的可以方便以后的扩展,实现开闭原则,需要扩展只需要增加代码,不需要需改以前的代码。

抽象工厂类:负责加工产品的工厂,下面还有具体的工厂类

抽象产品类:一个产品的总称 。下面还有具体实现产品类

具体实现类:相当于客户端的调用。

以手机为例:

抽象工厂:

相当于一个手机总产,负责接收订单

public interface IFactory {

MB create();

}

工厂的具体实现类:

三星手机:

public class UnderSanXingFactory implements IFactory{

@Override
public ShouJi create() {
// TODO Auto-generated method stub
return new Sanxing();
}


}

小米手机:

public class UnderXiaoMiFactory implements IFactory{

@Override
public ShouJi create() {
// TODO Auto-generated method stub
return new XiaoMi();
}


}

每个工厂负责生产具体的手机,以后扩展只需要实现抽象工厂类,即可!

抽象具体类:

相当于一个手机的总称呼:

public class ShouJi{

public ShouJi() {
// TODO Auto-generated constructor stub
}


}

手机具体的分类:

三星:

public class SanXing extends ShouJi{

public void createShouji(){

System.out.println(“SanXing”);

}

}

小米

public class XiaoMi extends ShouJi{

public void createShouji(){

System.out.println(“XiaoMi”);

}

}

要增加一个手机,只要继承手机类即可!!

客户端的调用:

public class FactoryMain {

public static void main(String[] args) {

// 调用生产三星手机

IFactory factory = new UndeSanxingFactory();

SanXing sanXing= (SanXing) factory.create();

sanXing.create();

// 调用生产小米手机

IFactory iFactory = new UnderXiaoMiFactory();

XiaoMi xiaoMi= (XiaoMi) iFactory.create();

xiaoMi.createShouJi();

}

}

这样既可以完成一个抽象工厂!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  工厂类 工厂模式