简单工厂、工厂方法和抽象工厂

    学习设计模式之前首先要知道什么是设计模式?
    设计模式是为了解决编程中特定问题而形成的一种代码的组织结构,如同房屋的架构一样
    设计模式的种类有很多,这里重点说一下简单工厂、工厂方法和抽象工厂
一、分别说明(课本上的例子)
    1.简单工厂
	创建一个类,然后由该类负责创建其他类的实例,前提是被创建的实例都有共同的父类
        以课本上计算器为例,创建了OperationFactory类,由它负责创建其他实例,而且被创建的实例都有
     共同的父类Operation
	
    2.工厂方法
	创建一个工厂接口IFactory,然后由加减乘除各自都建立一个具体的工厂实现这个接口(下图只有加
减运算),返回各自的结果
	
    3.抽象工厂
	在一个产品中有多个抽象产品的时候,这时候建立一个包含‘所有产品创建的抽象方法’的抽象工厂
    接口在产品运行的时候创建特定的产品对象;其实就是增加了几个接口方法,这样就可以创建多个对象,
	例如:
interface Ifactory
    {
	IUser CreateUser();
        IDepartment CreateDepartment();
    }
二、比较
    1.简单工厂
	优点:内部的逻辑结构一般确定,耦合度降低,每部分职责明确
        缺点:可扩展性不好
    2.工厂方法
	优点:每个类有单一职责,代码明确简洁;增加类方便,可扩展性好
        缺点:不宜维护,如果某一类要修改,可能会影响到工厂类
    3.抽象工厂
        优点:更改产品配置容易,只需更改具体工厂即可;
              客户端通过抽象接口操作,实现了创建实例与客户端分离
        缺点:难易扩展(课本例子中,如果在增加一个表,那么就会牵连到多个类)
三、总结
    这三种模式都是把产品中不变的东西提取出来,再把可变的部分留做接口,达到最大限度的复用
    每种模式都有利有弊,要具体问题具体分析选择合适的模式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 24
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值