平时大家在工作中多多少少有写过一些工厂方法,但是如果不了解设计模式的话可能不会知道具体有什么区别,下面本菜鸟给大家分享下我的理解。java的工厂方法模式其实就将我们需要变的method给抽象出来 ,让实现可以得到延迟,体现Java的多态性
ok,直接上代码
ok 这种写法是比较简单的,但是这种写法有一些问题。第一他不高级,第二它不符合开闭原则和单一职责原则
当我们需要穿件多个Product 时,每次都need 改动Application里的代码 代码侵入比较高,是传统的面向实现编程
ok,当我们需要创建多个Product 时,我们就会想到将product 做成接口类 做如下改进:
注意这种写法也只是一种编程思想 ,将需要变动的class 做成interface 是面向接口的编程,但其实这个还不是设计模式,还存在一些问题
比如这个地方我们使用传参的方式去创建不同对象,其实是比较low 的写法 ,如果再来一个对象,咋还得再加一个类型,代码侵入性很高
那么我们如何解决加一个新得对象得时候不会对原有代码做改动呢。ok go on。。。。。。。
这种写法相当于将我们将整个工厂给抽象化了,这个Application2 可以有共有逻辑,也可以不同得产品实现,当我们外层需要创建对象时
only need new 实现类就ok了,真正意义上得面向接口编程。ok,这是小编得个人理解,有什么建议可以相互交流奥~~