简单(静态)工厂模式
一、背景介绍
工厂模式是设计模式的一种,设计模式是自程序开发逐渐就有的,提高开发效率的一种设计思路,先前的开发者们一直在用,只是后来这四个人出了一本书总结了下,就是现在的23种设计模式:
1994年由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版的 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素)书中首次提到的,所以叫GOF
书中共有三个层面的内容:
一、算是一个总结性的,把程序开发过程中在不同系统中多次使用过的成功设计的模式进行总结,用名称-问题-解决方案-实用效果这几个要素来描述;
二、提出了面向对象开发中“针对接口编程而不是针对实现编程”,“优先使用组合而不是继承”的总体设计思路;
三、就是基于上面的设计思路所形成的常用的设计模式,也就是现在流传最广的23种常见的设计模式;
设计模式是为了更好的实现开发,使代码更易懂,易维护。它也是为了解决大多数开发者们的问题而出现的,当然它也不是万能的。除了设计模式我们在开发过程中还需要遵循基本的设计原则,这里后面再说。
概念
许多人通晓并且使用的经过分类的代码设计经验的总结。
设计模式是开发者们在开发过程中面临一般问题的解决方案,这些解决方案是经过相当长的一段时间的试验和错误总结出来的。设计模式几乎在所有的编程里都适用。
目的
为了提高代码可重用性、可扩展性、健壮性、更容易被理解。
*当前说的设计模式是针对面向对象,而不是面向过程
二、知识剖析
工厂模式
工厂是为了实现对构造过程(创建过程)的封装。也是设计原则的体现。工厂模式是一种创建型的设计模式,主要思想就是替代new为我们创建对象,工厂可以选择创建对象的方法,对这个构造过程(创建方法)进行选择的逻辑就是工厂模式的逻辑。 这样也是为了给以后的系统带来更大的可扩展性,实现低耦合。
工厂模式大概有三种
简单工厂模式
工厂方法模式
抽象工厂模式
简单(静态)工厂模式
简单工厂模式是最初自然而然就有的设计思想,它只是把创建过程比较自然的封装了一下,又称为静态工厂模式,是直接根据条件决定创建的产品。
简单工厂模式由三部分组成:
- 工厂角色(工厂/工厂抽象类):它创建具体产品,实现了对创建过程(构造过程)的封装。也是设计原则的体现。工厂类里面是创建对象的逻辑,也就是对这个构造过程进行封装
- 抽象产品角色(产品抽象/接口类):工厂类所创建的产品的父类,或者说它们的共同接口
- 具体产品角色(产品实体类):工厂类所创建的任何对象都是这个角色的实例
工厂模式和抽象工厂则是多了一个共同的工厂接口,所有实例工厂都是这个接口工厂的实现类
三、常见问题
设计模式
- 设计模式只是思路,并不能解决所有问题
- 不要强制使用,它是用来解决问题,而不是寻找问题
- 一定要在对的地方使用,不然只会适得其反
设计模式三大类:
1.创建型模式 : 专注于如何初始化对象,就是在创建对象的同时隐藏创建逻辑