首页 > 代码库 > 设计模式之工厂模式
设计模式之工厂模式
工厂模式作为创建型模式中最经典模式,可以说是被运用的最为广泛。就算是刚刚学习java的小白,也会不经意间得在自己的程序中用到这一模式的一部分,无意识地就成就着工厂模式。
那么工厂模式是怎样的呢?怎么的代码设计才能称作完整的工厂模式?
就个人理解,工厂模式由其功能定义:为创建对象提供一个过渡的接口,使得创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。
工厂模式讲究创建对象的时候不直接使用new 方法,因为new方法有时候会暴露创建对象的过程(new方法中常常带有构造参数)。
工厂模式的类图可以由下图表示:
由类图可以看出,客户(client)想要获取到产品对象(product),是通过创建类(creator)来创建,而非直接创建。且这一过程还使用了接口类来提高同一类产品的扩展性。当有新的产品产生时,只要按照抽象产品角色、抽象工厂角色提供的合同来生成就可以直接被客户适用了,而不必去修改任何已有的代码。工厂模式也是符合开闭原则的。
下面来看一个完整的例子加深对工厂模式的理解。
1 //抽象工厂角色 2 public interface Driver{ 3 public Car driverCar(); 4 } 5 //具体工厂角色 6 public class BenzDriver implents Driver{ 7 public Car driverCar(){ 8 return new Benz(); 9 }10 }11 //抽象产品角色12 public interface Car{13 public void drive();14 }15 //具体产品角色16 public class Benz implents Car{17 public void drive(){18 doSomething();19 }20 }
设计模式之工厂模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。