小鸦之设计模式(2)-工厂模式

工厂模式, 有好几种, 工厂方法模式, 抽象工厂模式..
我不打算就它们的“工厂”的设计模式展开讨论, 就我以前的几个费解的地方进行说明.

普通模式

interface A
class B implement A{}
class C implement A{}
A a=new B();
A b=new C()

工厂模式


class factory{
....
    A returnB(){
    return new B();
    }
}

看了上面两段代码, 可能有人会想说, 工厂模式就是一种封装, 可是这种包装有必要吗?

但实际上, 不注意的话, 我们是这样写的

interface A
class B implement A{}
class C implement A{}
B a=new B();
C b=new C()

所以, 也就是, 我们使用了具体class当作类型, 这里代码的提供方, 是(强迫性)地要我们只用接口提供的方法.

  1. 具体类当类型, 暴露出来的method会太多(冗余过多), 接口的好处( 暴露得越少, bug机率就越少)

另外的好处

new A(new f(),new g(),new h());
new A(new f(),new g());

将code(构造函数等)转换成一个method, 并注释. 也就是code转换成文字. 文字的好处: 利于维护.
这里, 可以发现, 其实工厂类方便结合IDE的提示功能. 好处在于我们知道一个类class 再用智能提醒, 就可以知道其他所有class. 并且智能提醒的注释是二次注释, 也就是针对性比较强

另外
工厂模式, 方便且大量扩展. 利用了“反射”, 多少体现它“平台性”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值