FACTORY设计模式【让吃货也能理解的程序】

一个人要有思想,技术再牛的人,如果没有一点点文化气氛,那么也是个码农,不能追到女朋友滴。

我这个人文化真心不多,但是比较喜欢读古诗文。虽然读完之后,记在脑海里的不多,不过,就讨一个喜欢【读】。

Leechee:荔枝,南国四大果品居首。

1、简单模式

package patterns.createable.factory;
/**
 * "日啖荔枝三百颗,不辞长作岭南人"---摘自 宋朝苏轼·《惠州一绝》
 * 古人对荔枝的赞美,频频出现在诗句中
 * 的确,这南国的荔枝,的确值得品尝
 * 在南国有四大果品中,荔枝居首
 * 
 * @author one
 *
 */
public class Leechee {

	void eat(){
		System.out.println("Eat Leechee");
	}

}


 

package patterns.createable.factory;

/**
 * 好东西,要学会分享,不要掖着。
 * 所以开了个荔枝加工厂,让四海之内的兄弟姐妹都尝尝
 * 
 * @author one
 * 
 */
public class LeecheeFactory {

	Leechee get() {
		return new Leechee();
	}

}
package patterns.createable.factory;

/**
 * 都听说荔枝好吃
 * 社区的人都来买来尝尝。
 * @author one
 *
 */
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//工厂将荔枝打包,发往全国各地
		LeecheeFactory lf=new LeecheeFactory();
		
		//荔枝到达了中国皖南地区,那里的人也喜欢,就买了一点
		Leechee leechee=lf.get();
		
		//尝尝,的确不错
		leechee.eat();
	}

}

得到的结果:

Eat Leechee


2、工厂方法模式

package patterns.createable.factory;

/**
 * "大师兄,不好了,师傅被妖怪抓走了"
 * "出什么状况了?"
 * "我们的荔枝把妖怪培养成吃货,它们夹持了我们的师傅,要新口味的水果。"
 * "这...我来想办法。"思考良久,"老子的香蕉,难道也要分享给这群吃货。"
 * "恐怕那些吃货不肯吃啊!"
 * "呃...我们只要简单的包装一下。"
 * @author one
 *
 */
public abstract class Fruit {

	abstract void eat();
}
package patterns.createable.factory;

/**
 * 新鲜口味的水果
 * @author one
 *
 */

public class Banana extends Fruit {

	@Override
	void eat() {
		System.out.println("Eat Banana");
	}

 

}
package patterns.createable.factory;

/**
 * 这个工厂就是生产香蕉的
 * @author one
 *
 */
public class BananaFactory {

	Banana get(){
		return new Banana();
	}

}

好了....师傅放回来了,可是每两周又被妖怪威胁要新的口味,导致我的工厂越来越多,没法管理了,怎么办?

统一一下:

package patterns.createable.factory;

/**
 * 成立总部,专做水果生意
 * @author one
 *
 */
public abstract class FruitFactory {

 	 abstract Fruit get();

}


公司改造,上市!

这样让所有的公司统一管理。至于是什么业务,生产什么水果,从总公司拿到订单,吩咐子公司去做就行了。

 


3、抽象工厂模式

【这个不说,可以理解为:水果加工产业,不属于水果生产,这个时候,就更高一层的把公司“工厂”抽象】

 

========================

在网上看到很多文章,看到很多人经常把简单工厂模式和工厂方法模式弄混淆,这里再说一下:工厂是具体实例,那么就是产品【荔枝】了,而工厂方法模式是一类产品的抽象【荔枝和香蕉都属于水果】。至于抽象工厂,就是不同产品类了,完全没有产品共性了,但属于莫一个公司【水果和水果加工产业都属于一个公司】,或者一个单位。更高一层的抽象。


 

 

posted on 2013-09-02 19:11  新一  阅读(190)  评论(0编辑  收藏  举报

导航