Factory有两个特点:
1)定义创建对象的接口,封装了对象的创建;
2)使得具体化类的工作延迟到了子类中。
这些特点应用到具体项目中可以使得我们在项目初期需要知道其他人实现的具体有哪些类,只需要调用某个基类,通过基类我们可以不断增加子类来满足系统不断扩展的要求,体现了软件项目中自顶向下的分析的过程。一下是这个过程的UML示意图:
以下代码来源于一个大牛的博客:http://www.phppan.com/?s=%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F