设计模式之工厂模式

设计模式之 factory

工厂模式定义:提供创建对象的接口

uml类图


为什么使用?

因为工厂模式就相当于创建实例对象的new,我们经常根据类class生成实例对象,比如 A a=new A();工厂模式也是用来创建实例对象的,以后new的时候可以考虑使用工厂模式,这么做可能多做一些工作,但会给你的系统带来更大的扩展性和尽量少的修改量。

优势:使用工厂模式可以对父类抽象一个接口,采用面向接口编程

  • 当我们对对象实例化之前做点初始化工作,比如赋值,查询数据库。
  • 当子类继承父类需要对以前的代码进行修改时,需要对子类一个一个进行实例化。

工厂方法

     使用工厂方法注意几个角色,首先定义产品接口,如Product,产品接口下有Product的实现类,如ProductA,其次是一个factory类,用来生成产品。

//产品接口
public interface Product{
 ...
}
//实现类A
class ProductA implements Product{
 ...
}
//实现类B
class ProductB implements Product{
 ...
}
//工厂用来生产产品
public class Factory{
    public void Product create(int type){
     if(type==1){
    return new ProductA();
     }else if(type==2){
    return new ProductB();
 }
  }
}


抽象工厂

 

public interface AbstractFactory{
 //生产派
public Pie createPie();
 //生产果汁
public Juice createJuice();
}
public class AppleFactory implements AbstractFactory{
 public Pie createPie(){
  return new ApplePie();
 }
 public Juice createJuice(){
  return new AppleJuice();
 }
}

public class OrangeFactory implements AbstractFactory{

 public Pie createPie(){
  return new OrangePie();
 }
 public Juice createJuice(){
  return new OrangeJuice();
 }
}
//抽象产品
public interface Pie(){
     void work();
}
//具体产品
public ApplePie implements Pie{
 void work(){

 }
}
public OrangePie implements Pie{
 void work(){

 }
}
public interface Juice{
 void work();
}
public AppleJuice implements Juice{
 void work(){

 }
}
public OrangeJuice implements Juice{
 void work(){

 }
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值