标签:
2016年苹果春季发布会发布了一款迄今最高性能的4英寸iPhone,那么问题来了,苹果公司的代工厂到底生产多少种尺寸的手机呢? 下面就让简单工厂告诉我们答案吧。
简单工厂模式的UML如下:
简单工厂模式的实现
首先创建一个"苹果手机"类,定义一个获取手机尺寸的方法
/** * 苹果手机 * @author songwz * */ publicabstractclass ApplePhone {
/** * 获取尺寸 */ protectedabstractvoid getSize(); } |
苹果手机不同型号的"手机类"。
/** * Iphone4 * @author songwz * */ publicclass Iphone4 extends ApplePhone{
@Override publicvoid getSize() { System.out.println("iPhone4屏幕:3.5英寸"); }
}
/** * iPhone5 * @author gt780 * */ publicclass Iphone5 extends ApplePhone {
@Override publicvoid getSize() { System.out.println("iPhone5屏幕:4英寸"); }
}
/** * iPhone6 * @author songwz * */ publicclass Iphone6 extends ApplePhone{
@Override publicvoid getSize() { System.out.println("iPhone6屏幕:4.7英寸"); }
} |
建立一个"工厂类"生产不同型号的"手机对象"。
/** * 苹果工厂 * @author songwz * */ publicclass AppleFactory {
publicstatic ApplePhone createPhone(String model){ ApplePhone applePhone = null;
switch (model) { case"iPhone4": applePhone = new Iphone4(); break; case"iPhone5": applePhone = new Iphone5(); break; case"iPhone6": applePhone = new Iphone6(); break; default: break; }
returnapplePhone; } } |
最后是客户端测试类
publicclass Client {
publicstaticvoid main(String[] args) { ApplePhone applePhone ; applePhone = AppleFactory.createPhone("iPhone4"); applePhone.getSize(); applePhone = AppleFactory.createPhone("iPhone5"); applePhone.getSize(); applePhone = AppleFactory.createPhone("iPhone6"); applePhone.getSize(); } } |
简单工厂的优点:
标签:
原文地址:http://www.cnblogs.com/hehesong/p/5306914.html