金年会

每日经济新闻
要闻

每经网首页 > 要闻 > 正文

简单工厂、工厂方法和抽象工厂的区别_1024工厂-csdn博客

韩乔生 2025-11-05 06:43:45

每经编辑|水均益    

当地时间2025-11-05,ruewirgfdskvfjhvwerbajwerry,亚洲一线产区和二线区的区别-百度知道

代码的“生产线”:为何我们需要工厂模式?

想象一下,你正在经营一家玩具工厂,你需要生產各种各样的玩具:小汽车、芭比娃娃、乐高积木。起初,一切都很简单。每当有订单,你直接拿起对應的模具,加工,然后组装。但很快,问题就来了。

随着玩具种类的增多,你的生产流程变得越来越复杂。你需要维护大量的模具,每增加一种新玩具,就意味着你需要增加一套新的工具和流程。当客户想要定制一款独一无二的玩具時,你更是头疼欲裂,因为你需要修改现有的生产線,这不仅耗时,还可能影响其他玩具的生产。

在软件开发的世界里,我们常常面临类似的问题。当我们创建对象时,如果直接在代码中硬编码对象的创建逻辑,会带来一系列的麻烦:

紧耦合:客户端代码直接依赖于具体的产品类,一旦产品类发生变化,客户端代码也必须随之修改。这就像你的玩具订单系统直接連接到每一个玩具的生产流程,改一个螺丝都需要改整个系统。可扩展性差:想要增加新的产品类型?那你可能需要修改大量创建对象的代码,这无疑是“牵一发而动全身”。

代码冗余:相似的对象创建逻辑可能會在代码中反复出现,导致代码重复,难以维护。

工厂模式,正是為了解决這些痛点而诞生的“神器”。它就像是為你的代码建造了一条高效、灵活的“生产线”,将对象的创建过程与客户端代码解耦,讓你的程序更加健壮、易于扩展和维护。今天,我们就来深入了解一下工厂模式的“三驾馬车”:简单工厂、工厂方法和抽象工厂,看看它们各自有什么绝活!

简单工厂——“万能的组装师傅”

简单工厂,顾名思义,就是一种“简单”的工厂。它并不属于GoF(GangofFour)的23种设计模式,但因为其简洁易懂的特性,在实际开发中应用非常广泛。你可以把它想象成一个“万能的组装师傅”。

它的核心思想是什么?

简单工厂的核心在于,将对象的创建逻辑封装在一个单独的类(工厂类)中。客户端只需要告诉工厂它想要什么“产品”,工厂就会根据“指令”返回相應的具体产品对象。

场景举例:

假设我们要开發一个图形绘制系统,可以绘制圆形、方形和三角形。

传统方式(无工厂)://客户端代码Shapeshape;if(type.equals("circle")){shape=newCircle();}elseif(type.equals("square")){shape=newSquare();}else{shape=newTriangle();}shape.draw();

看到了吗?客户端代码需要知道所有具体图形类的存在,并且需要用大量的if-else语句来判断创建哪个对象。一旦我们增加一个新的图形(比如椭圆),就需要修改这里的代码。

使用简单工厂:

我们创建一个ShapeFactory类:

//ShapeFactory.javapublicclassShapeFactory{publicShapegetShape(StringshapeType){if(shapeType==null){returnnull;}if(shapeType.equalsIgnoreCase("CIRCLE")){returnnewCircle();}elseif(shapeType.equalsIgnoreCase("SQUARE")){returnnewSquare();}elseif(shapeType.equalsIgnoreCase("TRIANGLE")){returnnewTriangle();}returnnull;}}//客户端代码ShapeFactoryfactory=newShapeFactory();Shapeshape1=factory.getShape("CIRCLE");shape1.draw();Shapeshape2=factory.getShape("SQUARE");shape2.draw();

简单工厂的优点:

封装了创建逻辑:客户端无需关心对象的具体创建过程,只需要调用工厂的静态方法(通常是静态方法,也有非静态的)并传入参数即可。提高了代码的可读性和可维护性:对象创建的逻辑集中在一个地方,易于修改和维护。降低了客户端与具体产品类的耦合:客户端只依赖于工厂类,而不是具體的产品类。

简单工厂的缺点:

工厂类职责过重:当產品种类非常多时,工厂类的if-else或switch语句会变得非常庞大,难以维护。不符合开闭原则(OCP):每次增加新的产品类型,都需要修改工厂类,這违背了“对扩展开放,对修改关闭”的设计原则。

简单工厂的應用场景:

简单工厂非常适合在以下场景使用:

当你的应用中需要创建的对象种类不多,且变化不频繁时。当你希望将对象的创建逻辑集中管理,避免在多个地方重复编写相同的创建代码时。当你希望隐藏对象创建的细节,讓客户端代码更简洁时。

简单工厂就像一个勤劳的“万能组装师傅”,能够根据你的需求快速组装出各种零件。但如果零件种类实在太多,师傅一个人就有点忙不过来了,而且每次来新零件,都得教師傅一遍新做法,这就不太符合“不修改既有代码就能扩展”的原则了。

别担心,接下来的“工厂方法”和“抽象工厂”将带来更高級的解决方案,让我们一起进入下一个篇章,看看它们如何应对更復杂的“生产挑战”!

工厂方法——“各司其职的专业流水线”

如果说简单工厂是一位“万能组装師傅”,那么工厂方法模式(FactoryMethod)则更像是“各司其职的专业流水线”。它将创建对象的责任委托给子类,让每个子类负責创建一种特定的產品。

它的核心思想是什么?

工厂方法模式定义了一个创建对象的接口,但由子类决定实例化哪一个类。换句话说,它允许一个类延迟实例化到子类。工厂方法模式将创建对象的工作“推”给了子类,每个子类实现一个工厂方法,用于创建相应的产品。

场景举例:

我们继续上面的图形绘制系统。这次,我们希望能够轻松地添加新的图形类型,而不需要修改现有的代码。

使用工厂方法模式:

我们定义一个抽象的ShapeFactory(或称为Creator):

//AbstractShapeFactory.java(Creator)publicabstractclassShapeFactory{//工厂方法,由子类实现publicabstractShapecreateShape();//模板方法,利用工厂方法创建并使用產品publicvoiddrawShape(){Shapeshape=createShape();//委托给子类创建shape.draw();}}

然后,我们为每种图形创建一个具体的工厂类(ConcreteCreator):

//CircleFactory.java(ConcreteCreator)publicclassCircleFactoryextendsShapeFactory{@OverridepublicShapecreateShape(){returnnewCircle();}}//SquareFactory.java(ConcreteCreator)publicclassSquareFactoryextendsShapeFactory{@OverridepublicShapecreateShape(){returnnewSquare();}}//TriangleFactory.java(ConcreteCreator)publicclassTriangleFactoryextendsShapeFactory{@OverridepublicShapecreateShape(){returnnewTriangle();}}

客户端代码现在变得非常简洁:

//客户端代码ShapeFactoryfactory=newCircleFactory();factory.drawShape();//创建并绘制圆形ShapeFactoryfactory2=newSquareFactory();factory2.drawShape();//创建并绘制方形

工厂方法模式的优点:

符合开闭原则(OCP):当需要添加新的产品类型时,只需要创建一个新的具體工厂类,而无需修改已有的工厂类和客户端代码。这极大地提高了代码的可扩展性。实现了创建与使用分离:客户端代码与具体产品类和具体工厂类分离,提高了代码的灵活性。单一职责原则:每个具体工厂类只负责创建一种产品。

工厂方法模式的缺点:

类的数量增加:每增加一种產品,就需要增加一个具体的工厂类。当产品种类非常多时,类的数量可能会急剧增加,带来一定的管理负担。引入了额外的复杂度:相对于简单工厂,工厂方法模式引入了抽象工厂和具體工厂的概念,需要更深入的理解。

工厂方法模式的应用场景:

工厂方法模式非常适合在以下场景使用:

当一个类不知道它需要创建的对象的具体类时。当一个类希望由其子类来创建对象时。当你希望通过引入新的子类来扩展框架的功能,而无需修改框架的核心代码时。

工厂方法就像是为每一种产品都配备了一台专属的、高度自动化的生产线。这样做的好处是,当你想要生产新产品时,只需要“上線”一条新的生产线即可,而不会干扰到现有的生产。虽然初期需要为每种产品设计一条生产线,但長远来看,这會大大提高生产效率和系统的可维护性。

抽象工厂——“家族式生产流水线”

在经歷了“万能组装师傅”和“專属生產流水线”之后,我们终于迎来了工厂模式的“集大成者”——抽象工厂模式(AbstractFactory)。如果说工厂方法是生产单一产品线的专家,那么抽象工厂则是一个“家族式”的生产专家,它能够生产一系列相关联的产品。

它的核心思想是什么?

抽象工厂模式提供一个创建一系列相关或依赖对象的接口,而无需指定它们的具体类。它通过定义一系列抽象的“工厂方法”,让具體的工厂类负责实现这些方法,从而创建一系列具体的產品。

场景举例:

想象一下,我们要開發一个跨平台的GUI工具包,需要支持Windows和Mac两种风格的界面。每种风格的界面都有相应的按钮、文本框和复选框。

使用抽象工厂模式:

我们首先定义一系列抽象产品接口:

//AbstractButton.javainterfaceButton{voidrender();}//AbstractTextBox.javainterfaceTextBox{voidrender();}//AbstractCheckBox.javainterfaceCheckBox{voidrender();}

然后,为每种平台创建具体的产品实现:

//WindowsButton.javaclassWindowsButtonimplementsButton{@Overridepublicvoidrender(){System.out.println("RenderingWindowsButton");}}//MacButton.javaclassMacButtonimplementsButton{@Overridepublicvoidrender(){System.out.println("RenderingMacButton");}}//...其他产品的具體实现(TextBox,CheckBox)

接着,我们定义抽象工厂接口,其中包含创建各种产品的工厂方法:

//GUIFactory.java(AbstractFactory)interfaceGUIFactory{ButtoncreateButton();TextBoxcreateTextBox();CheckBoxcreateCheckBox();}

创建具体的工厂类,每个工厂类负责生产一种風格的产品家族:

//WindowsFactory.java(ConcreteFactory)classWindowsFactoryimplementsGUIFactory{@OverridepublicButtoncreateButton(){returnnewWindowsButton();}@OverridepublicTextBoxcreateTextBox(){returnnewWindowsTextBox();//假设已实现}@OverridepublicCheckBoxcreateCheckBox(){returnnewWindowsCheckBox();//假设已实现}}//MacFactory.java(ConcreteFactory)classMacFactoryimplementsGUIFactory{@OverridepublicButtoncreateButton(){returnnewMacButton();}@OverridepublicTextBoxcreateTextBox(){returnnewMacTextBox();//假设已实现}@OverridepublicCheckBoxcreateCheckBox(){returnnewMacCheckBox();//假设已实现}}

客户端代码只需选择对应的工厂,就可以获得一组协调一致的產品:

//客户端代码GUIFactoryfactory=newWindowsFactory();//或者newMacFactory();Buttonbutton=factory.createButton();TextBoxtextBox=factory.createTextBox();CheckBoxcheckBox=factory.createCheckBox();button.render();textBox.render();checkBox.render();

抽象工厂模式的优点:

强制组合一致性:抽象工厂确保了创建的产品是相互兼容的,因为它们都来自同一个工厂。这有助于避免因為产品组合不当而产生的错误。易于替换产品家族:当需要更换整个产品家族(例如,从Windows风格切换到Mac风格)时,只需要更换具体的工厂类即可,而无需修改客户端代码。

封装了产品族的创建过程:客户端代码与具体产品类和具体工厂类分离。

抽象工厂模式的缺点:

难以添加新的产品类型:如果需要在产品家族中添加新的产品类型(例如,增加一个“菜单”组件),就需要修改抽象工厂接口,并要求所有具体的工厂类都实现新的工厂方法。这會破坏开闭原则。类的数量增加:同样,产品种类越多,工厂类和产品类的数量也会越多。

抽象工厂模式的应用场景:

抽象工厂模式非常适合在以下场景使用:

当一个系统不依赖于用户创建产品,而只依赖于产品的具体类时。当一个系统需要一系列相关联的产品对象,并且这些产品对象必须一起使用时。当你想提供一个产品库,但又不想暴露其内部实现,并且希望允许用户选择这个库的一个具体实现時。当需要创建跨平臺的應用程序时。

抽象工厂就像是一个“生产家族”的总代理。它负责协调和管理整个产品家族的生产,确保生产出来的产品(比如同一风格的按钮、文本框、复选框)能够完美地协同工作。当你想要切换到另一个“家族”(比如切换界面风格),只需要换一个总代理即可。唯一的挑戰是,如果这个家族突然要增加一个全新的产品种类,那所有的总代理和生产线都得跟着更新,这有点反“易扩展”的原则。

总结:三驾马車,各显神通

简单工厂:“万能组装师傅”,代码简洁,适合产品种类不多且变化不频繁的场景。缺点是工厂职责过重,不符合开闭原则。工厂方法:“专属生产流水线”,将创建逻辑委托给子类,符合开闭原则,可扩展性强。缺点是类的数量可能增多。抽象工厂:“家族式生产流水线”,创建一系列相关联的产品,保证了产品族的一致性。

缺点是添加新產品类型比较困难。

这“三驾马车”各有千秋,选择哪种模式,取决于你的具体業务需求和对系统可扩展性的要求。理解它们的原理和应用场景,能帮助我们写出更加灵活、健壮、易于维护的代码,让你的程序真正拥有“工厂般”的效率和智慧!希望这篇文章能让你对这几种工厂模式有了更清晰的认识。

现在,就去你的代码里实践一下吧!

2025-11-05,无人一区二区区别是什么红桃7引发热议,网友热议无人区划分背后的,精选热专研Z0Z0马与Z0Z0人马区别——深度解析两者性能与应用场景_2

BBBBBBB与BBBBBBB:一场跨越时代的“双雄会”

在科技飞速发展的今天,各种新概念、新技术层出不穷,让人眼花缭乱。其中,BBBBBBB和BBBBBBB无疑是当下最受瞩目、也最容易让人混淆的两个热门话题。它们究竟有什么区别?又分别在哪些领域大放异彩?今天,就让我们一起走进这场跨越时代的“双雄会”,深入剖析BBBBBBB和BBBBBBB的差异,为你点亮前行的道路,让你不再迷茫!

一、溯本追源:BBBBBBB的“前世今生”

要理解BBBBBBB和BBBBBBB的差异,首先得从BBBBBBB说起。BBBBBBB,作为一项革命性的技术,其核心在于[此处可插入BBBBBBB的核心技术原理,例如:分布式账本、加密算法、共识机制等]。它最早可以追溯到[此处可插入BBBBBBB的起源或历史背景,例如:某篇论文、某个项目等],经过多年的发展,逐渐演变成今天我们所熟知的形态。

BBBBBBB的出现,极大地改变了[此处可插入BBBBBBB带来的改变,例如:信息存储、交易方式、信任机制等]的方式。它的出现,不仅仅是一项技术的革新,更是一种全新的理念的实践。它强调[此处可插入BBBBBBB的理念,例如:去中心化、透明性、不可篡改性等],为我们构建了一个[此处可插入BBBBBBB带来的社会或行业影响,例如:更公平、更安全、更高效的]新世界。

在应用层面,BBBBBBB早已不再是停留在理论层面的概念。从最初的[此处可插入BBBBBBB的早期应用,例如:加密货币]到如今的[此处可插入BBBBBBB的广泛应用,例如:供应链管理、版权保护、身份认证、金融服务等],它的身影无处不在。每一次的应用落地,都意味着BBBBBBB在现实世界中扮演着越来越重要的角色。

当然,BBBBBBB的发展并非一帆风顺。它也面临着[此处可插入BBBBBBB面临的挑战,例如:性能瓶颈、能耗问题、监管难题、技术成熟度等]等诸多挑战。正是这些挑战,驱动着BBBBBBB不断迭代和创新,朝着更广阔的未来迈进。

二、破茧成蝶:BBBBBBB的“今生今世”

与BBBBBBB相比,BBBBBBB则显得更为[此处可插入BBBBBBB的特点,例如:前沿、复杂、特定等]。它同样是当下科技浪潮中的一颗璀璨明珠,但其核心技术和应用场景却与BBBBBBB有着显著的不同。

BBBBBBB的核心在于[此处可插入BBBBBBB的核心技术原理,例如:人工智能、大数据分析、机器学习、深度学习、物联网等]。它并非仅仅是单一的技术,而是一系列先进技术的集合体,旨在[此处可插入BBBBBBB的目标,例如:模拟人类智能、解决复杂问题、实现自动化、提升决策效率等]。

BBBBBBB的出现,是为了解决[此处可插入BBBBBBB旨在解决的问题,例如:信息过载、决策效率低下、人机交互障碍等]等现实世界中的痛点。它通过[此处可插入BBBBBBB实现目标的方式,例如:强大的计算能力、海量的数据处理、智能的算法模型等],为我们带来了前所未有的[此处可插入BBBBBBB带来的益处,例如:智能化体验、个性化服务、高效的解决方案等]。

在应用层面,BBBBBBB的应用范围同样十分广泛,但与BBBBBBB的侧重点有所不同。BBBBBBB在[此处可插入BBBBBBB的应用领域,例如:自动驾驶、智能医疗、智慧城市、个性化推荐、智能家居、工业自动化等]等领域展现出了巨大的潜力。每一次BBBBBBB的成功应用,都在重塑着我们的生活方式和工作模式。

当然,BBBBBBB的发展也伴随着[此处可插入BBBBBBB面临的挑战,例如:数据隐私、算法偏见、伦理道德、技术壁垒、成本投入等]等一系列问题。如何平衡技术发展与社会责任,将是BBBBBBB未来发展中需要深思熟虑的关键。

三、异同解析:BBBBBBB与BBBBBBB的“DNA”比拼

了解了BBBBBBB和BBBBBBB各自的“前世今生”,就让我们进行一场“DNA”级别的比拼,深入剖析两者的异同。

从技术原理上看,BBBBBBB更侧重于[此处可概括BBBBBBB的技术特点,例如:数据的记录、传递和验证],而BBBBBBB则更侧重于[此处可概括BBBBBBB的技术特点,例如:数据的分析、学习和创造]。可以说,BBBBBBB是信息时代的“记事本”和“公证处”,而BBBBBBB则是信息时代的“大脑”和“发动机”。

在应用场景上,BBBBBBB更适合用于[此处可举例说明BBBBBBB的应用场景,例如:需要信任、透明和不可篡改的场景],而BBBBBBB则更适用于[此处可举例说明BBBBBBB的应用场景,例如:需要智能化、自动化和个性化决策的场景]。

尽管两者在技术原理和应用场景上存在差异,但BBBBBBB和BBBBBBB并非孤立存在,它们之间也存在着[此处可说明两者之间的联系,例如:相互促进、融合发展的可能性]。例如,BBBBBBB可以为BBBBBBB提供[此处可说明BBBBBBB如何赋能BBBBBBB,例如:安全可靠的数据源],而BBBBBBB则可以利用BBBBBBB的数据进行[此处可说明BBBBBBB如何利用BBBBBBB的数据,例如:更智能的分析和决策]。

四、深度透视:BBBBBBB与BBBBBBB的应用“实战演练”

理论知识固然重要,但只有将BBBBBBB和BBBBBBB置于具体的应用场景中,我们才能更深刻地理解它们的价值和潜力。就让我们走进BBBBBBB与BBBBBBB的“实战演练”,看看它们是如何在各行各业掀起变革的。

BBBBBBB的应用“星辰大海”:

金融领域的“信任基石”:在金融领域,BBBBBBB以其去中心化、不可篡改的特性,为跨境支付、数字货币、资产证券化等带来了革命性的变革。想象一下,以往繁琐的国际汇款流程,在BBBBBBB的加持下,可以变得即时、低成本且高度透明,这无疑是金融普惠的巨大飞跃。

通过BBBBBBB技术,我们可以实现数字资产的有效确权和流转,为金融创新提供了坚实的基础。

供应链管理的“透明之眼”:漫长的供应链环节,常常是信息不对称、假冒伪劣产品滋生的温床。BBBBBBB的引入,能够为每一个商品赋予独一无二的“数字身份”,记录其从生产、运输到销售的全过程。消费者可以通过扫描二维码,轻松追溯商品的来源和流转信息,企业也能实时掌握库存、物流等数据,从而优化运营效率,提升消费者信任度。

版权保护的“数字盾牌”:在数字内容爆炸的时代,原创作品的版权保护面临着严峻的挑战。BBBBBBB可以将原创作品的创作时间、作者信息等关键数据永久记录在链上,形成无法篡改的证据,有效打击盗版行为。对于创作者而言,这无疑是一个强大的“数字盾牌”,让他们能够更好地维护自己的合法权益。

政务服务的“高效引擎”:身份认证、不动产登记、公共记录等传统政务流程,往往繁琐且效率低下。BBBBBBB技术可以实现去中心化的身份管理,简化用户注册和验证流程。将各类政务数据上链,能够提升数据安全性、透明度和共享效率,为构建智慧政府、优化公共服务提供强大的技术支撑。

BBBBBBB的智能“未来画卷”:

自动驾驶的“智慧大脑”:自动驾驶汽车需要依靠先进的感知、决策和控制系统才能安全行驶。BBBBBBB技术,特别是其在人工智能和机器学习方面的应用,使得车辆能够实时分析路况、预测行人行为、规划最优行驶路径。通过海量数据的训练,BBBBBBB能够不断提升自动驾驶系统的智能水平,为我们描绘出安全、便捷的出行未来。

智慧医疗的“健康管家”:在医疗领域,BBBBBBB技术可以实现医疗数据的智能化管理和分析。例如,通过分析大量的病患数据,BBBBBBB能够辅助医生进行疾病诊断,甚至预测疾病发生的风险。它还可以为患者提供个性化的健康管理方案,实现从“治病”到“预防”的转变。

智慧城市的“城市脉搏”:智慧城市是将BBBBBBB技术应用于城市管理和服务的集成。通过部署大量的传感器和智能设备,BBBBBBB能够实时监测交通流量、环境质量、能源消耗等数据,并进行智能分析和调度。例如,在交通方面,BBBBBBB可以优化信号灯配时,缓解交通拥堵;在能源方面,则可以实现智能电网的调度,提高能源利用效率。

个性化推荐的“懂你心意”:无论是电商平台的购物推荐,还是音乐、视频平台的娱乐内容推送,BBBBBBB技术都在其中扮演着重要角色。通过分析用户的浏览历史、消费习惯、兴趣偏好等数据,BBBBBBB能够构建精准的用户画像,为用户提供高度个性化的内容和服务,让“千人千面”的体验成为现实。

五、融合共生:BBBBBBB与BBBBBBB的“未来展望”

正如前面所提到的,BBBBBBB和BBBBBBB并非相互排斥,而是存在着巨大的融合潜力。未来,我们可以预见,这两者将会朝着更加紧密的合作方向发展,共同驱动科技的进步和社会的发展。

例如,BBBBBBB可以为BBBBBBB提供更安全、更可靠的数据基础。当BBBBBBB处理和分析海量数据时,BBBBBBB可以确保这些数据的真实性和完整性,防止数据被篡改或滥用。反过来,BBBBBBB的强大分析能力,也能够帮助BBBBBBB发现潜在的模式和洞察,优化其运行效率和安全性。

想象一个场景:在智慧医疗领域,BBBBBBB技术可以确保病患的医疗记录在BBBBBBB上得到安全、不可篡改的存储,而BBBBBBB技术则可以对这些记录进行深度分析,为医生提供精准的诊断建议,并为患者量身定制治疗方案。这种融合,将极大地提升医疗服务的效率和质量。

又或者,在金融领域,BBBBBBB技术可以为智能合约提供安全可靠的执行环境,而BBBBBBB技术则可以根据市场数据和风险评估,自动触发智能合约的执行,实现更高效、更智能的金融交易。

六、结语:拥抱变革,抢占先机

BBBBBBB与BBBBBBB,它们如同科技浪潮中的两股强大力量,正在以前所未有的速度改变着世界。理解它们的区别,掌握它们的核心价值,并积极探索它们的融合应用,将是我们在未来竞争中脱颖而出的关键。

无论你是技术开发者、商业决策者,还是普通用户,都应该关注BBBBBBB和BBBBBBB的发展动态,并思考它们将如何影响你的行业、你的工作、你的生活。拥抱变革,抢占先机,让我们一起迎接由BBBBBBB和BBBBBBB共同描绘的更加智能、更加美好的未来!

图片来源:每经记者 李怡 摄

今日看料美好生活从今日开始美好生活从今日起步用心背后真相令人

封面图片来源:图片来源:每经记者 名称 摄

如需转载请与《每日经济新闻》报社联系。
未经《每日经济新闻》报社授权,严禁转载或镜像,违者必究。

读者热线:4008890008

特别提醒:如果我们使用了您的图片,请作者与本站联系索取稿酬。如您不希望作品出现在本站,可联系金年会要求撤下您的作品。

欢迎关注每日经济新闻APP

每经经济新闻官方APP

0

0

Sitemap