设计模式--工厂模式

设计模式中,有简单工厂模式,工厂方法模式和抽象工厂模式,自己老是混淆,现在总结一下。

简单工厂模式:工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关类。

        创建一个单独的类创造实例,例如运算类,有加减乘除,首先定义父类Operation,加减乘除继承Operation类,工厂类定义如下

        class OperationFactory

{

public static Operation createOperation(string operate)//operate 表示选择条件

{

Operation oper = null;

switch(operate)

{

case "+":

oper = new OperationAdd();

break;

case "-":

oper = new OperationSub();

break;

}

}

}

要增加新的运算时,只需要添加新的运算子类并增加相应的switch分支即可。

工厂方法模式:

定义一个用于创建对象的接口,让子类决定实例化哪个类。

抽象工厂模式:

系统的产品有多余一个产品族,而系统只消费某一个产品族,不会两个产品族同时使用。如Windows和linux操作系统

button-->windows/linux

text-->windows/linux

属于同一产品族的在一起使用,所有产品以相同的接口出现。

定义方式

IFactory {

public Button ButtonFactory();

public Text TextFactory();

WindowsFactory implements IFactory {

public Button ButtonFactory(){

return New WindowButton();

}

public Text TextFactory(){

return new WindowText();

}

}

定义Button、Text抽象类

interface Button {

//button提供的外部接口

}

interface Text{

}

}

WindowButton,LinuxButton继承Button,对应的Factory只产生某一系类的产品

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值