23种设计模式----工厂模式

23种设计模式----工厂模式


工厂模式
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
个人理解,工厂模式是将性质相同的方法放在一个容器中,在用户需要的时候只需要知道要的是什么,
选择相应的工厂,调用相应的方法即可。
实现方式大概有以下几种
1:将所需要的内容些在一个方法中,要执行的内容通过参数进行判断。这种调用时根据不同的参数进行判断
2:写一个接口类,接口中定义方法,不同的类需要实现此接口。这种调用时用户需要知道调用的类,以及方法是
3:通过一个类继承抽象类来完成工厂模式。这种调用时只需要在继承抽象类的方法是
从上述几个实现方法中我们知道,第一个代码都写在了一起,不方便维护。
第一种与第二、三种方法对比,第二、三种方法只提供选择,可控性更强
第二个和第三个对比显然第三个更能从调用的角度考虑事情。在用的时候通过一个类调用不同的方法即可

–第一种方式
public class PhoneFactory{

/*

  • 通过参数来选择自己需要的服务
    */
    public String getPhone(int type){
    switch(type){
    case 1 :
    –实现的内容
    return “huawei”;

      case 2 :
      	--实现的内容
      	return "pingguo";
    

    //你可以有任意数量的case语句
    default : //可选
    –实现的内容
    return “wu”;
    }
    }

}

–第二种方式
public interface PhoneFactory{

//
public String getPhone();

}

public class Huawei extends Phone{

public String getPhone(){
–实现的内容
return “huawei”;
}

}

public class pingguo extends Phone{

public String getPhone(){
–实现的内容
return “huawei”;
}

}

–第三种方式

public abstract Phone{

public abstart String gethuawei();
public abstart String getpingguo();

}

public class PhoneFactory extends Phone{

public abstract String gethuawei(){
–实现的内容
return “huawei”;
}

public abstract String getpingguo(){
–实现的内容
return “pingguo”;
}

}

public String FactoryTest(){
/*
* 底层实现的基本相同的情况下,就看看其它方面是否合理,从调用的角度看,第三种方法符合这个思想
*/
public static void main(String[] args) {
//第一种方法的调用
PhoneFactory pfone =new PhoneFactory();
pfone.getPhone();

	//第二种方法的调用  
	PhoneFactory pftwo = new Huawei();
	pftwo.getPhone();
	
	//第三种方法的调用  
	PhoneFactory pftwo = new PhoneFactory();
	pftwo.getPhone(); 
	
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值