企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
`1. 定义` > 简单工厂模式(Simple Factory Pattern):专门定义一个类(工厂类)来负责创建其他类的实例。可以根据创建方法的参数来返回不同类的实例,被创建的实例通常都具有共同的父类。 简单工厂模式又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。 `2. 适用场景` >**通过工厂创建对象,并且根据传入参数决定具体子类对象的做法,就是简单工厂模式** 如果我们希望将一些为数不多的类似的对象的创建和他们的创建细节分离开,也不需要知道对象的具体类型,可以使用简单工厂模式。 >举个形象点的例子:在前端开发中,常常会使用外观各式各样的按钮:比如有的按钮有圆角,有的按钮有阴影,有的按钮有边框,有的按钮无边框等等。但是因为同一种样式的按钮可以出现在项目的很多地方,所以如果在每个地方都把创建按钮的逻辑写一遍的话显然是会造成代码的重复(而且由于业务的原因有的按钮的创建逻辑能比较复杂,代码量大)。 >那么为了避免重复代码的产生,我们可以将这些创建按钮的逻辑都放在一个“工厂”里面,让这个工厂来根据你的需求(传入的参数)来创建对应的按钮并返回给你。这样一来,同样类型的按钮在多个地方使用的时候,就可以只给这个工厂传入其对应的参数并拿到返回的按钮即可。 ## **成员与类图** ### **成员** 简单工厂模式的结构比较简单,一共只有三个成员: * 工厂(Factory):工厂负责实现创建所有产品实例的逻辑 * 抽象产品(Product):抽象产品是工厂所创建的所有产品对象的父类,负责声明所有产品实例所共有的公共接口。 * 具体产品(Concrete Product):具体产品是工厂所创建的所有产品对象类,它以自己的方式来实现其共同父类声明的接口。 下面通过类图来看一下各个成员之间的关系: ### **模式类图** ![](https://img.kancloud.cn/75/31/753100875d06346b46d643175b6188c1_666x465.png) 简单工厂模式类图 > 从类图中可以看出,工厂类提供一个静态方法:通过传入的字符串来制造其所对应的产品。