创建型设计模式总结_第1页
创建型设计模式总结_第2页
创建型设计模式总结_第3页
创建型设计模式总结_第4页
创建型设计模式总结_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

创建型设计模式总结《创建型设计模式总结》篇一创建型设计模式是一组设计模式,它们主要关注对象的创建过程,而不是像结构型模式那样关注对象的组合或行为。这些模式提供了一种在创建对象时避免直接实例化子类的机制,从而使创建过程更加灵活和可扩展。以下是几种常见的创建型设计模式:1.工厂模式工厂模式是一种创建对象的策略,它定义了一个创建对象的接口,但由子类决定要创建的对象的类型。这种模式通常用于创建一系列相关对象,且客户端不需要知道具体创建过程。工厂模式可以分为简单工厂模式、工厂方法模式和抽象工厂模式。2.建造者模式建造者模式是一种将对象的创建和表示分离的模式。它允许创建复杂的对象,同时将创建过程抽象化。建造者模式可以用来创建不同类型的对象,而客户端只需要关心如何组装这些对象,不需要关心创建细节。3.单例模式单例模式确保一个类只有一个实例,并提供一个全局访问点来访问这个实例。这种模式通常用于需要在整个系统中保持一个唯一对象的场景,比如数据库连接、日志记录器等。4.原型模式原型模式通过复制一个现有的对象来创建一个新对象,而不是通过传统的构造函数来创建。这种模式可以有效地减少实例化对象的开销,特别适用于创建大量相似对象的场景。5.组合模式组合模式虽然不是创建型模式,但它提供了一种将对象组合成树形结构的方法,使得用户可以一致地处理单个对象和组合对象。这种模式通常用于表示部分和整体的关系,比如文件系统和目录的关系。在实际应用中,选择哪种创建型设计模式取决于具体的业务需求和场景。例如,如果需要创建的对象类型不确定,且创建过程需要抽象化,那么工厂方法模式可能是更好的选择。如果创建的对象比较复杂,且需要将创建过程和表示分离,那么建造者模式可能更为合适。如果需要确保一个类只有一个实例,那么单例模式是唯一的选择。总之,创建型设计模式提供了对象创建的灵活性和可扩展性,使得程序能够更好地应对变化。开发人员应该根据实际情况选择合适的模式,以提高代码的复用性和可维护性。《创建型设计模式总结》篇二创建型设计模式是一组旨在简化对象创建过程的设计模式。它们提供了一种在运行时创建对象的方式,而不是直接使用new操作符。创建型模式通常用于隐藏创建逻辑,使得客户端代码更加简洁,同时也能更好地管理对象的创建和生命周期。以下是几种常见的创建型设计模式:1.工厂模式工厂模式是一种创建对象的通用方法,它允许客户端创建不同类型的对象,而无需知道对象的创建细节。工厂模式通常包含一个抽象工厂接口,以及多个具体工厂实现,每个实现负责创建不同类型的对象。例如,一个游戏中的角色创建可以采用工厂模式,客户端只需要调用工厂的创建方法,而无需关心具体角色的创建逻辑。```java//抽象工厂接口publicinterfaceCharacterFactory{CharactercreateCharacter(Stringtype);}//具体工厂实现publicclassHeroFactoryimplementsCharacterFactory{@OverridepublicCharactercreateCharacter(Stringtype){if("hero".equals(type)){returnnewHero();}elseif("villain".equals(type)){returnnewVillain();}else{thrownewIllegalArgumentException("Unknowncharactertype:"+type);}}}```2.抽象工厂模式抽象工厂模式是工厂模式的一个变体,它提供了一系列的工厂方法,每个方法用于创建不同类型的对象家族。抽象工厂模式允许客户端创建一系列相关的对象,而无需关心这些对象的具体实现。例如,一个图形应用程序可能使用抽象工厂模式来创建不同风格的图形对象,如线条、形状和颜色。```java//抽象工厂接口publicinterfaceGraphicsFactory{ShapecreateShape(Stringtype);ColorcreateColor(Stringtype);//...}//具体工厂实现publicclassClassicGraphicsFactoryimplementsGraphicsFactory{@OverridepublicShapecreateShape(Stringtype){if("circle".equals(type)){returnnewCircle();}elseif("square".equals(type)){returnnewSquare();}else{thrownewIllegalArgumentException("Unknownshapetype:"+type);}}@OverridepublicColorcreateColor(Stringtype){//创建颜色对象}//...}```3.单例模式单例模式确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。单例模式通常用于需要全局访问某个对象的场景,例如数据库连接、日志记录器等。```javapublicclassSingleton{privatestaticfinalSingletoninstance=newSingleton();privateSingleton(){}publicstaticSingletongetInstance(){returninstance;}}```4.建造者模式建造者模式将对象的创建过程与它的表示分离。它允许创建复杂的对象,同时隐藏了创建细节。建造者模式通常包含一个抽象建造者、一个具体建造者和一个导演者。例如,构建一个复杂的对象,如汽车,可以采用建造者模式来管理各个部件的组装。```java//抽象建造者接口publicinterfaceCarBuilder{CarBuilderaddWheels(intnumber);CarBuilderaddEngine(Engineengine);//...Carbuild();}//具体建造者实现publicclassSportsCarBuilderimplementsCarBuilder{privateCarcar=newCar();@OverridepublicCarBuilderaddWheels(intnumber){//添加车轮returnthis;}@OverridepublicCarBuilderaddEngine(Engineengine){//添加引擎returnthis;}//其他方法...@OverridepublicCarbuild(){//完成汽车构建returncar;}}//导演者类publicclassCarDirector{privateCarBuilderbuilder;publicCarDirector(CarBuilderbuilder){this.builder=builder;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论