23中设计模式内功心法的
一、.简单工厂模式
1、主要解决了一个类的在创建对很多对象的同时,可以简单通过字的参数来轻松的进行比对创建对象。
2.模式引导
有一个传承特别久的家族企业,这个家庭中,有一个男孩和女孩都继承了家族企业,都时在卖相同的羊肉串,而有个博客特别好奇,平凡的看下到底是各自卖什么?巧妙设计如下:
3.1创建男孩子实例如下:
package test;
public class LaoPang implements Barbecue {
public void saleRouChuan(){
System.out.println(“帅哥卖羊肉串”);
}
}
3.2创建女孩子实例如下:
public class Gril implements Barbecue {
public void saleRouChuan(){
System.out.println(“小女孩买羊肉串”);
}
}
3.3由于两个方式做的事相同,为了体现代码的高内聚性抽取为接口实例代码如下:
package test;
public interface Barbecue {
void saleRouChuan();
}
分析:因为接口不能直接创建干活;而又需要大量的创建对象;解决方案如下:
package test;
public class BarbecueFactory {
public Barbecue getBarbecue(String type){
if(“小女孩”.equals(type)){
return new Gril();
}else if(“帅哥”.equals(type)){
return new LaoPang();
}else {
return null;
}
}
}
最后测试代码如下:
package test;
public class TestMain {
public static void main(String[] args) {
//无工厂模式
Barbecue bue=new Gril();
bue.saleRouChuan();
System.out.println("================");
//有简单工厂模式后体现如下
//1创建一个工厂
BarbecueFactory factory=new BarbecueFactory();
//2看看时谁卖
Barbecue bbq=factory.getBarbecue(“小女孩”);
//调用方法
bbq.saleRouChuan();
}
}
总结:由原来的创建对象干活,转变为工厂干活,提供条件可以轻松完成!