简单工厂模式(simpleFactory),又叫做静态工厂方法模式,它定义一个具体的工厂类来负责创建一些类的实例,而这些被创建的类都应该有一个共同的父类,这样可以实现面向对象而不是面向具体编程。简单工厂类主要由3部分组成:工厂类、抽象类和实现抽象类的具体类。
简单工厂模式的原理结构图:
代码示例:
抽象类:
//Product.java
//抽象接口
package cn.desginPatten
public inteeface Product{
public void operation1();
}
具体产品类:
//Product1.java
//实现Product接口
package cn.desginPatten
public class Product1 implements Product{
public void operation1(){
//Product1的具体实现
}
}
//Product2.java
//实现Product接口
package cn.desginPatten
public class Product2 implements Product{
public void operation1(){
//Product2的具体实现
}
}
工厂类:
package cn.desginPatten
public class simpleFactory{
public static Product createProduct(String ProductName){
if("1".equals(ProductName))
return new Product1();
else if("2".equals(ProductName))
retrun new Product2();
return null;
}
客户端代码:
public class simpleFactoryTest{
public static void main(String [] args){
Product product = simpleFactory.createProduct("1");
product.operation1();
Product product = simpleFactory.createProduct("2");
product.operation1();
}
简单工厂模式的优缺点:简单工厂模式是一种创建型模式,主要应用于创建对象。
优点:客户端不再负责对象的创建,而是将创建对象丢到专门创建对象的工厂类,客户端只负责对对象的调用,这样各个类的职责便比较明确了。
缺点:简单工厂采用静态的方法来创建对象,这使得该方法无法被继承,假设在上例中需要再增加1个产品,那么只能修改工厂类方法,如果是1000个呢?这将导致后期工厂类的代码变的很庞大、臃肿。不利于后期的维护。
简单工厂模式适用情况:只需要创建少量的具体对象。(这个少量具体是多少?有待验证)
简单工厂类的改进:------
- 大小: 33 KB
分享到:
相关推荐
式学习,23中设计模式 设计模式之禅设计模式学习,23中设计模式 设计模式之禅 设计模式学习,设计模式之禅
Java设计模式,解说通俗易懂,推荐新手学习使用,文档中包含类图
设计模式学习笔记,分析了GOF的23种模式和类设计的原则
学习设计模式的资料,书中阐述了作者对设计模式的理解以及在程序设计中遇到问题该用什么样的模式去解决。
设计模式学习笔记,总共23个设计模式,还有几个设计原则
设计模式学习笔记.ppt 自己写的一点学习笔记。
Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...
Java设计模式学习笔记
HeadFirst设计模式学习伴侣.jpg
我收集的设计模式的学习笔记,采用pdf格式,便于收藏和查看
C++的设计模式学习资料,说了GOF的23钟,这方面的书很少!我终于找到与大家分享了!
设计模式的学习资料,内涵十四个PPT文件对应十四个章节,可用于大学生教学,内容详尽,通俗易懂
Head First 设计模式(高清中文完整版带目录)+附书源码+HeadFirst设计模式学习伴侣.rar 又名: Head First Design Patterns 作者: (美)弗里曼(Freeman,E.) 副标题: Head First Design Patterns 简介 ·····...
对于那些具有丰富的开发经验的开发人员,学习设计模式有助于了解在软件开发过程中所面临的问题的最佳解决方案;对于那些经验不足的开发人员,学习设计模式有助于通过一种简单快捷的方式来学习软件设计。
包含设计模式的介绍文档、UML类图以及示例代码,详情可参见: http://blog.csdn.net/xuexiangjys/article/details/78924201 http://blog.csdn.net/xuexiangjys/article/details/78924434 ...
各个模式都有详细的例子C#学习笔记,打开就知道了
总结了java开发中的21种设计模式,详解和例子,带书签的pdf格式,方便阅读!
设计模式之美—学习笔记,纯手打,学习极客时间课程得到。 如有意见或建议,欢迎联系,一起学习讨论。
您的设计模式我们的设计模式,简单明了的设计模式是设计模式学习必备的书籍
设计模式之美PPT,个人学习整理