无论是简单工厂还是复杂工厂,首先它们都是工厂,工厂是干什么的呢? 在现实生活中的工厂是负责生产产品的,产品或者可以食用或者可以使用,可以为我们提供功能或者补充能量,这个产品是有用的,真实存在的。那么在面向对象的软件设计中提到的工厂是什么意思呢?既然也是工厂,肯定也是生产东西的,只不过这个东西在这里一定是一个对象的实例,而且这个东西我们可以使用,所以在软件设计中工厂的概念就是指可以生产某个类型对象实例的一个类型。就像我们要吃饼干不用自己做,去超市买就好了,因为有工厂已经把饼干生产好了,生产是工厂的任务,吃是我们自己的事情,两个互不干涉,多好啊。。。在软件设计中,如果以后我们要使用某个类型的实例,就告诉工厂就行,他就会给我们想要的实例对象,具体工厂是怎么生产我们就不用管了,我们也省事了,也就是所谓的解耦了。我们平常编程中,当使用”new”关键字创建一个对象时,此时该类就依赖与这个对象,也就是他们之间的耦合度比较高,当需求变化时,我们就不得不去修改此类的源码,此时我们可以运用面向对象(OO)的很重要的原则去解决这一的问题,该原则就是——封装变化点,既然要封装改变点,自然也就要找到变化的代码,然后把变化的代码用类来封装,这样的一种思路也就是我们简单工厂模式的实现方式了。下面通过一个现实生活中的例子来引出简单工厂模式。
生活中,免不了要经常在外面吃饭,当然我们也可以自己在家做饭吃,但是自己做饭吃麻烦,因为又要自己买菜,然而,出去吃饭就完全没有这些麻烦的,我们只需要到餐馆点菜就可以了,买菜的事情就交给餐馆做就可以了,这里餐馆就充当简单工厂的角色,下面让我们看看现实生活中的例子用代码是怎样来表现的。
楼主最近还看过