简单工厂
来源:互联网 发布:python for quants 编辑:程序博客网 时间:2024/05/21 10:17
工厂类在我们的工程中比较常见,在这里介绍一下简单工厂的写法,比较简答,不多说,看代码
package 工厂模式2;
/**
* 定义一个接口,里面有若干个方法
* @author lang
*
*/
public interface Iphone {
/**
* 生产的手机可以发短信
*/
public void sendMessage();
/**
* 生产的手机可以照照片,自拍神器嘛,还是必须得有的
*/
public void TakePhoto();
/**
* 生产的手机可以打电话,必须的呀,要不就不叫手机了
*/
public void talkWithFamily();
/**
* 还有若干个功能,我实在是写不完了,哈哈。。。
*/
}
package 工厂模式2;
/**
* 就以高端大气上档次的iphone为例了,但我还是 love my country !!!
* @author lang
*
*/
public class Iphone4 implements Iphone{
@Override
public void sendMessage() {
System.out.println("Iphone4 可以打电话");
}
@Override
public void TakePhoto() {
System.out.println("Iphone4可以拍照片");
}
@Override
public void talkWithFamily() {
System.out.println("Iphone4可以和家人通话");
}
}
package 工厂模式2;
public class Iphone5 implements Iphone {
@Override
public void sendMessage() {
System.out.println("Iphone5 可以打电话");
}
@Override
public void TakePhoto() {
System.out.println("Iphone5可以拍照片");
}
@Override
public void talkWithFamily() {
System.out.println("Iphone5可以和家人通话");
}
}
package 工厂模式2;
public class Iphone6 implements Iphone {
@Override
public void sendMessage() {
System.out.println("Iphone6 可以打电话");
}
@Override
public void TakePhoto() {
System.out.println("Iphone6可以拍照片");
}
@Override
public void talkWithFamily() {
System.out.println("Iphone6可以和家人通话");
}
}
//真正重要的
package 工厂模式2;
/**
* 生产手机的厂商
* @author lang
*
*/
public class IphoneFactory {
static Iphone phone = null;
public static Iphone createPhone(Class c){
try {
//这里通过类反射机制,虽然我也不熟悉,但要敢于尝试新事物,重要的代码要写上三遍呦,这样才不会忘记!!!哈哈哈。。。
//phone = (Iphone) Class.forName(c.getName()).newInstance();
//phone = (Iphone) Class.forName(c.getName()).newInstance();
phone = (Iphone) Class.forName(c.getName()).newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return phone;
}
}
package 工厂模式2;
public class IphoneCompany {
public static void main(String[] args) {
//大牛来生产手机了,没难懂的地方就不解释了
System.out.println("给我生产Iphone4手机");
Iphone iphone4 = IphoneFactory.createPhone(Iphone4.class);
iphone4.sendMessage();
iphone4.TakePhoto();
iphone4.talkWithFamily();
//生产iphone5手机
System.out.println("生产Iphone5手机");
Iphone iphone5 = IphoneFactory.createPhone(Iphone5.class);
iphone5.sendMessage();
iphone5.TakePhoto();
iphone5.talkWithFamily();
System.out.println("生产Iphone6手机");
Iphone iphone6 = IphoneFactory.createPhone(Iphone6.class);
iphone6.sendMessage();
iphone6.TakePhoto();
iphone6.talkWithFamily();
}
}
是不是很简单,将来要是iphone7 iphone8出来了,直接继承Iphone接口,就可以量产了,岂不美哉
- 简单工厂,工厂,抽象工厂
- 简单工厂、工厂、抽象工厂
- 简单工厂、工厂、抽象工厂
- 工厂模式-简单工厂
- 简单工厂 静态工厂
- 工厂模式-简单工厂
- 工厂 > 简单工厂
- 简单工厂,工厂方法
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- ImageLoader 可以加载的图片的地址类型
- 【快速筛可能是大费马素数的数】
- xliff:g 错误 error: Error parsing XML: unbound prefix
- axure基础
- android listview中checkbox(购物车,批量操作)
- 简单工厂
- 导航条布局
- Java_命名规范
- zookeeper权威的应用案例
- CSS Reset方法及它的滥用
- Ubuntu connect rjsupplicant
- slave宕机master重启出现问题解决办法
- 基于计数排序子程序的基数排序实现
- IE浏览器的版本怎么就降下来