【设计模式学习笔记】简单工厂模式

本文深入讲解了简单工厂模式,一种常见的设计模式,用于通过工厂方法返回一个类的实例,无需指定具体的类。通过实例演示了如何创建接口、实现类及工厂类,展示了模式的灵活性和扩展性。

简单工厂模式

又称为静态工厂模式,提供一个公有的静态工厂方法,返回一个类的实例。
通过工厂我们不必具体去实例化某一个实例对象。只需要传递某些约定的参数,工厂会自动找到该类并将其实例化。

文章目录

 

          简单工厂模式

          1. 创建一个接口,接口中定义公用方法。

          2. 创建接口对应的实现

          3. 创建工厂类

          4. 测试

          5. 说明

          参考

 1. 创建一个接口,接口中定义公用方法。

package factory.simplefactory;

/************************************************
 *@ClassName : Car
 *@Description : TODO
 *@Author : NikolaZhang
 *@Date : 【2018/11/26 21:19】
 *@Version : 1.0.0
 *************************************************/

public interface Car {
    void run();
}

 2. 创建接口对应的实现

package factory.simplefactory;

/************************************************
 *@ClassName : BWMCar
 *@Description : TODO
 *@Author : NikolaZhang
 *@Date : 【2018/11/26 21:20】
 *@Version : 1.0.0
 *************************************************/

public class BWMCar implements Car{
    @Override
    public void run() {
        System.out.println("宝马跑起来!");
    }
}

 3. 创建工厂类

package factory.simplefactory;

import util.StringUtil;

/************************************************
 *@ClassName : CarFactory
 *@Description : 简单工厂, 使用反射实例化对象
 *@Author : NikolaZhang
 *@Date : 【2018/11/26 21:14】
 *@Version : 1.0.0
 *************************************************/

public class CarFactory {
    private CarFactory(){}
    public static Car getCar(String carName) {
        if(!StringUtil.isEmpty(carName)){
            try {
                return (Car) Class.forName(carName).newInstance();
            } catch (InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}

4. 测试

package factory.simplefactory;

/************************************************
 *@ClassName : Test
 *@Description : TODO
 *@Author : NikolaZhang
 *@Date : 【2018/11/26 21:30】
 *@Version : 1.0.0
 *************************************************/

public class Test {
    public static void main(String[] args) {
        CarFactory.getCar("factory.simplefactory.BWMCar").run();
    }
}

5. 说明

在工厂类中我们使用反射生成对应的实例对象。需要的参数为实体的路径。
当某天我们的系统需要进行扩展时,仅仅需要添加一个实体,并实现接口中的方法。
而我们的工厂方法则不会有什么需要改动的地方。

参考

【菜鸟教程】:http://www.runoob.com/design-pattern/factory-pattern.html

本文原文地址:https://blog.csdn.net/baidu_30325009/article/details/85018696

内容概要:本文围绕直驱式永磁同步电机(PMSM)的矢量控制策略开展系统性研究,基于Simulink平台构建了完整的闭环仿真模型,深入探讨了电机在矢量控制下的动态响应特性与控制性能。研究内容涵盖了矢量控制的核心理论与关键技术模块,包括Clarke与Park坐标变换、转子磁场定向控制(FOC)、SVPWM调制算法、双闭环PI控制器(电流环与速度环)的设计与参数整定。通过仿真验证了系统在启动、突加负载及变速工况下的稳定性、抗干扰能力与动态调节精度,有效实现了对电机转矩与转速的精确控制。该模型不仅有助于深化对PMSM控制机理的理解,也为高性能电机驱动系统的算法开发与工程化应用提供了可靠的仿真验证平台。; 适合人群:具备自动控制原理、电机学基础及Simulink仿真能力的电气工程、自动化、新能源等相关专业的高年级本科生、研究生以及从事电机驱动开发的初级科研人员与工程师。; 使用场景及目标:①作为高校课程设计、毕业设计或科研项目中PMSM控制系统的学习案例,用于掌握矢量控制算法的实现流程与模块化设计方法;②帮助研究人员理解各控制环节间的耦合关系,通过调整PI参数优化系统性能,并为进一步研究无传感器控制、弱磁扩速、先进非线性控制策略等高级课题奠定基础; 阅读建议:建议结合经典电机控制教材同步学习,重点剖析各功能模块的信号流向与数学原理,亲自动手搭建仿真模型,通过改变运行条件和控制器参数观察系统响应变化,从而深入掌握矢量控制系统的动态特性和调试技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值