设计模式:03 工厂方法(Factory Method)

简要说明

工厂方法通过一个抽象类实现了所有对产品的加工操作代码,唯独将产品的构建方法写成抽象方法。继承这个抽象类的具体类只重写其构建方法,这样就实现了对于不同被构建产品复用相同的加工操作逻辑。工厂方法适用于需要在子类中才能决定实例化哪个被操作对象,同时这些被操作对象又复用相同操作逻辑的场合。

结构类图

在这里插入图片描述

结构示例代码

/**************************************************
*

  • Design Pattren Quick Start
  • 03 FactoryMethod - 工厂方法

**************************************************/
namespace DesignPatternQuickStart.FactoryMethod
{
///
/// 产品接口
///
interface IProduct { }

///  
/// A类型产品 
///  
class ProductA : IProduct { } 

///  
/// B类型产品 
///  
class ProductB : IProduct { } 

///  
/// 含有工厂方法的抽象业务类 
///  
abstract class ACreator 
{ 
    protected abstract IProduct FactoryMethod(); 

    public void OpreateMethod() 
    { 
        IProduct product = FactoryMethod(); 
        //对product的一系列操作 
    } 
} 

///  
/// 生产A类型产品的具体业务类 
///  
class CreatorA : ACreator 
{ 
    protected override IProduct FactoryMethod() 
    { 
        return new ProductA(); 
    } 
} 

///  
/// 生产B类型产品的具体业务类 
///  
class CreatorB : ACreator 
{ 
    protected override IProduct FactoryMethod() 
    { 
        return new ProductB(); 
    } 
} 

///  
/// 客户类 
///  
class Client 
{ 
    public void OpreateMethod() 
    { 
        ACreator creatorA = new CreatorA(); 
        creatorA.OpreateMethod(); 

        ACreator creatorB = new CreatorB(); 
        creatorB.OpreateMethod(); 
    } 
} 

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值