简单工厂模式
来源:互联网 发布:软件编辑器手机版 编辑:程序博客网 时间:2024/05/20 14:24
工厂的作用:
可以自主生产自己的产品 而不在依赖于new()
定义一个moveable接口
Movable.java
package com.fgh.dp.factory;/** * 定义moveable接口 任意具有可以移动特性的类都可以实现该接口 * 比如汽车 飞机等 * @author fgh * */public interface Moveable {void run();}
定义一个实现类Car.java
package com.fgh.dp.factory;//import java.util.ArrayList;//import java.util.List;/** * 实现moveable接口 */public class Car implements Moveable {// 单例模式private static Car car = new Car();// 多例模式// private static List<Car> cars = new ArrayList<Car>();/** * 如果不想让用户自己生产car 就设置成private */public Car() {}/** * 在这个方法里面可以添加逻辑 判断司机得到车需要的条件 比如身份证 驾照等 * ---又称静态工厂模式 * * @return */public static Car getInstance() {return car;}public void run() {System.out.println("开着车回老家,路途中。。。。");}}定义一个抽象工厂类 该类可以产生所有实现具有run特性的交通工具VehicleFactory.java
package com.fgh.dp.factory;/** * 定义一个抽象工厂类 为所有生产交通工具类的父类 * 使程序可以在某个维度上进行扩展 不仅可以产生新的交通工具 * 而且还可以控制产生新的交通工具的生产 * * @author fgh * */public abstract class VehicleFactory {abstract Moveable create();}
定义实现该抽象工厂的实现类 CarFactory.javapackage com.fgh.dp.factory;/** * 抽象工厂类的实现类 专门生产汽车的工厂 * @author fgh * */public class CarFactory extends VehicleFactory{/** * 重写父类方法 */@Overridepublic Moveable create() {return new Car();}}测试方法:Test.javapackage com.fgh.dp.factory;public class Test {public static void main(String[] args) {/** * 这种方式 司机可以拥有多辆车 通过new 得到 * 如果想要让司机不能自己随便得到的车的话 * 可以通过在方法里 提供一个私有构造方法 实现 这样 * 就不能通过new得到 但是 不能new的话 用户得不到车 * */// Car c = new Car();// Car.getInstance().run();// c.run();/** * 通过new方法 产生任意的交通工具 */// Moveable m = new Plane();// m.run();/** * 通过工厂的方式 产生任意的交通工具 */VehicleFactory factory = new CarFactory();Moveable f = factory.create();f.run();}}运行结果:
开着车回老家,路途中。。。。
生产具体交通类和抽象工厂类关系图
该过程使用了抽象类和接口,关于抽象类的接口什么时候使用的说明:
抽象类和接口的使用:
1、这个概念确实在我们脑子中存在的 就用抽象类2、如果这个概念仅仅是某个方面的一个特性 比如会飞的、会唱的等 像这样的就设计成接口3、在不清楚是设计成抽象类还是设计成接口的时候,一般都设计成接口 原因是实现了这个接口之 后 还可以从其他的抽象类继承 更灵活
- 工厂模式-简单工厂
- 工厂模式-简单工厂
- 工厂模式-简单工厂模式
- 工厂模式-简单工厂模式
- 简单工厂模式,工厂模式
- 工厂模式-简单工厂模式
- 简单工厂模式,工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 简单工厂和工厂模式
- 简单工厂和工厂模式
- 1,工厂模式--简单工厂
- 简单工厂和工厂模式
- 简单工厂,工厂模式,抽象工厂
- 简单工厂,工厂模式,抽象工厂
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂模式和抽象工厂
- java有关的各种技术简介。。。开发须知
- Java经典代码(配置文件的积累。。。 .
- 赢
- 【郭林专刊】Struts2项目搭建 .
- 项目经理问:为什么总是只有我在加班 – 挂包袱现象
- 简单工厂模式
- [x264]int16_t (*mv[2])[2]的含义
- ICE介绍
- Web service的学习资源
- c#中结构浅析
- struts2的路径检索策略
- 【郭林专刊】HQL语法汇总
- poj 2031
- 了解ORACLE权限管理