一个人要有思想,技术再牛的人,如果没有一点点文化气氛,那么也是个码农,不能追到女朋友滴。
我这个人文化真心不多,但是比较喜欢读古诗文。虽然读完之后,记在脑海里的不多,不过,就讨一个喜欢【读】。
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、抽象工厂模式
【这个不说,可以理解为:水果加工产业,不属于水果生产,这个时候,就更高一层的把公司“工厂”抽象】
========================
在网上看到很多文章,看到很多人经常把简单工厂模式和工厂方法模式弄混淆,这里再说一下:工厂是具体实例,那么就是产品【荔枝】了,而工厂方法模式是一类产品的抽象【荔枝和香蕉都属于水果】。至于抽象工厂,就是不同产品类了,完全没有产品共性了,但属于莫一个公司【水果和水果加工产业都属于一个公司】,或者一个单位。更高一层的抽象。