浅谈Java设计模式系列0x04---抽象工厂模式

浅谈Java设计模式系列0x00
浅谈Java设计模式系列0x01—单例模式
浅谈Java设计模式系列0x02—简单工厂模式
浅谈Java设计模式系列0x03—工厂方法模式

本次我们要给大家介绍的是工厂类的最后一个设计模式——抽象工厂模式;

抽象工厂

抽象工厂模式与工厂方法模式的不同在于:抽象工厂模式中的具体工厂不单单创建一种产品,它负责创建一族产品;
这里的一族产品可以这样理解:在同一个工厂生产的,位于不同产品等级结构的一组产品;
简单的说就是在同一工厂生产的不同类型的产品:比如苹果手机和苹果电脑就是一族产品;
抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类;

Read More

浅谈Java设计模式系列0x02---简单工厂模式

浅谈Java设计模式系列0x00
浅谈Java设计模式系列0x01—单例模式

什么是工厂模式

工厂就是用来生产产品的地方,而在设计模式中,工厂就是一个创建各种对象的地方(类);
工厂通常包含一个或多个方法,用来创建该工厂所能创建的各种类型的对象;
它和上次的单例模式一样也是创建型模式;

什么是简单工厂模式

我认为可以用一句话来概括简单工厂模式的关键:

just say what you want,don’t worry the detail;

当然这句话只是我对这简单工厂模式的理解,你只要说你需要什么,不必关心它是怎样创建的;
因为简单工厂模式可以根据传进来的参数创建特定的对象,而且创建的对象都具有共同的父类;
在简单工厂模式中用来创建对象实例的方法都是静态方法,所以简单工厂模式又叫做静态工厂方法(Static Factory Method)模式;

Read More

浅谈Java设计模式系列0x00

本系列是我对于各种设计模式的一些理解,我会以最简单,最直白的方式将我的理解写下来,如果有什么错误希望各位能帮忙指出;
首先我们先对设计模式做一些基本的了解;
学习设计模式的目的不是学习设计模式的固定实现方式本身,而是其思

什么是设计模式

Wikipedia:
In software engineering, a software design pattern is a general reusable solution to a commonly occurring problem within a given context in software design.

上面是维基百科对设计模式的定义,其中我认为generalreusable非常明确的表明了设计模式的任务;
它是对软件设计中经常出现的问题的一种 通用,可重用 的解决方案;
说白了就是软件工程师为了偷懒而想出来的一种方法,它可以帮工程师们解决一些重复和麻烦的工作;

Read More

浅谈Java设计模式系列0x03---工厂方法模式

浅谈Java设计模式系列0x00
浅谈Java设计模式系列0x01—单例模式
浅谈Java设计模式系列0x02—简单工厂模式

上次我们讲了简单工厂模式,这次我们来讲一下工厂方法模式;
简单工厂模式是工厂方法模式的一种,有了对简单工厂模式的了解后,对工厂方法模式的理解也就容易多了;

工厂方法模式

相对于简单工厂模式,工厂方法模式将工厂类分为了工厂父类和工厂子类;
工厂父类负责定义创建产品对象的公共接口,工厂子类则负责生成具体的产品对象;
将实例化操作延迟到子类进行,由于工厂方法模式动态创建对象的特点,所有也叫多肽工厂模式;

Read More