设计模式之简单工厂模式
来源:互联网 发布:ifind金融数据库 编辑:程序博客网 时间:2024/06/03 22:42
单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
1.工厂(Creator)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。
2.抽象(Product)角色 简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
3.具体产品(Concrete Product)角色 简单工厂模式所创建的具体实例对象
优缺点:
在这个模式中,工厂类是整个模式的关键所在。它包含必要的判断
逻辑,能够根据外界给定的信息,决定究竟应该创建哪个具体类的
对象。用户在使用时可以直接根据工厂类去创建所需的实例,而无
需了解这些对象是如何创建以及如何组织的。有利于整个软件体系
结构的优化。
不难发现,简单工厂模式的缺点也正体现在其工厂类上,由于工厂类集中
了所有实例的创建逻辑,所以“高内聚”方面做的并不好。另外,当系统中的
具体产品类不断增多时,可能会出现要求工厂类也要做相应的修改,扩展
性并不很好。
public class Apple implements Fruit{/* * 采集 */public void get(){System.out.println("采集苹果");}}
public class Banana implements Fruit{public void get(){System.out.println("采集香蕉");}public class FruitFactory {///*// * 获得Apple类的实例// *///public static Fruit getApple() {//return new Apple();//}/////*// * 获得Banana类实例// *///public static Fruit getBanana() {//return new Banana();//}/* * get方法,获得所有产品对象 */public static Fruit getFruit(String type) throws InstantiationException, IllegalAccessException, ClassNotFoundException {//if(type.equalsIgnoreCase("apple")) {//return Apple.class.newInstance();////} else if(type.equalsIgnoreCase("banana")) {//return Banana.class.newInstance();//} else {//System.out.println("找不到相应的实例化类");//return null;//}Class fruit = Class.forName(type);return (Fruit) fruit.newInstance();}}
}public interface Fruit {/* * 采集 */public void get();}public class MainClass {public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {////实例化一个Apple//Apple apple = new Apple();////实例化一个Banana//Banana banana = new Banana();////apple.get();//banana.get();////实例化一个Apple,用到了多态//Fruit apple = new Apple();//Fruit banana = new Banana();//apple.get();//banana.get();////实例化一个Apple//Fruit apple = FruitFactory.getApple();//Fruit banana = FruitFactory.getBanana();//apple.get();//banana.get();Fruit apple = FruitFactory.getFruit("Apple");Fruit banana = FruitFactory.getFruit("Banana");apple.get();banana.get();}}
0 0
- 设计模式 之简单工厂+ 工厂模式
- 设计模式之简单工厂设计模式
- 设计模式之简单工厂模式,工厂模式,策略模式
- 设计模式 之 简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂.
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- ubuntu 12.04 联想thinkpad e430 安装wifi驱动
- OWASP WebGoat---安全测试学习笔记(十三)---不安全配置
- 利用栈来实现二叉树前序遍历
- 导出python类
- Exercice_3.13.1_练习使用vector2
- 设计模式之简单工厂模式
- OWASP WebGoat---安全测试学习笔记(十四)---不安全存储
- 目标检测的图像特征提取之(一)HOG特征
- C++多小球非对心弹性碰撞(HGE引擎)
- Spring配置数据源
- myeclipse手动安装jetty插件
- OWASP WebGoat---安全测试学习笔记(十五)---恶意执行
- Android学习笔记-1-First App
- OWASP WebGoat---安全测试学习笔记(十六)---参数篡改