==============最近人有点懈怠了,在此告诫下自己====================
设计模式中的工厂模式,顾名思义就是一个生产对象的加工工厂.想想我们日常生活中的工厂,只需要调用方的简单控制就可以生成我们所需要的相同类型不同实现的对象
工厂模式优点:省去调用者直接创建对象,而且如果增加不同的实现对象,调用者不变,只需要修改工厂示例即可.
工厂模式缺点:工厂类中集中了所有创建实例逻辑,如果存在多层次结构,代码会很臃肿.而且如果工厂类出了问题,那么所有引用则不可用
===================代码示例========手机工厂==========================
实例接口类
/**
* @类名 Phone.java
* @作者 zx
* @创建日期 2016年8月29日
* @描述 实体类接口
* @版本 V 1.0
*/
public interface Phone {
void call();
}
两种实现
/**
*
* @类名 OldPhone.java
* @作者 zx
* @创建日期 2016年8月29日
* @描述 老式手机
* @版本 V 1.0
*/
public class OldPhone implements Phone{
@Override
public void call() {
System.out.println("这里添加旧手机的业务");
}
}
/**
* @类名 NewPhone.java
* @作者 zx
* @创建日期 2016年8月29日
* @描述 新式手机
* @版本 V 1.0
*/
public class NewPhone implements Phone{
@Override
public void call() {
System.out.println("这里添加新手机的业务");
}
}
工厂类
public class PhoneFactory {
public static Phone getInstance(String type){
if("old".equals(type)){
return new OldPhone();
}else if("new".equals(type)){
return new NewPhone();
}else{
throw new RuntimeException("没有对应实例");
}
}
}
测试
public class TestMain {
public static void main(String[] args) {
String type = "new";
Phone instance = PhoneFactory.getInstance(type);
instance.call();
}
}
运行代码结果:这里添加新手机的业务