创建型设计模式总结

02.创建型设计模式实验 写在前面 在网上抄个作业居然要不没有,要不要钱!老子有个屁的钱,气得我直接写完了,分享在这里供借鉴(抄可以,但你得会了再抄)。随便转载,可以不署我名但需要声明非原创。 这是一系列的作业,所以也气了我一系列,不想后来人受气了。 本作业对《图解设计模式》这本书有不小内容的借鉴,在此感谢并推荐。 创建型设计模式实验 1、简单工厂 题目:使用简单工厂模式设计一个可以创建不同几何形状( Shape)(例如圆形( Circle).、矩形 Rectangle)和三角形( ( Triangle)等的绘图工具类,每个几何图形 阅读详情

注意单件模式在多线程的问题。

Abstract Factory抽象工厂:
例子:游戏中不同系列的设施创建(古典的,现代的...),但是对于系列中的对象(道路,房屋...这些是不变的,不

会需要增加一个“下水道”对象)简单工厂的问题:--不能应对“不同系列对象”的变化,有了新的变化点。一系列相互依赖的对象

抽象工厂的缺点:难以应对“新对象”的需求变动,它只适用于“新系列”的需求变动。Abstract Factory模式和Factory Method模式结合,来应对“对象创建”的需求变化


Builder生成:
例子:游戏中造房子,房子的各个部分千变万化,这样就可以造出各种各样的房子。
“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的

各个部分经常面临着剧烈的变化,但是将他们组合在一起的算法却相对稳定。

意图:将一个复杂对象的构建与其表示相分离,使得同样的构建过程 可以创建 不同 的表示。

Builder模式主要在于应对“复杂对象各个部分”的频繁需求变动,其缺点在于难以应付“构建算法”的频繁需求

变动。

Builder模式通常和Composite模式组合使用。

Factory Method工厂方法:
例子:造车,比如要造红旗车,但是现在需求变了,需要造东风车。
“某个对象”的创建工作,由于需求的变化,这个对象经常面临着剧烈的变化,但是它却拥有比较稳定的接口

定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使得一个类的实例化延迟到子类

Prototype原型:
例子:一个游戏中需要多个Actor,这具体某个Actor可能会用到多个,所以采用“克隆”,来创建多个具体的

Actor。
“某些结构复杂的对象”的创建工作,由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳

定一致的接口。使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。


创建型模式总结:

Singleton解决的是实体对象个数的问题,除了Singleton之外,其他创建型模式解决的都是new所带来的耦合关系

。

工厂方法模式(Factory Pattern)的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中去

,强调的是“单个对象”的变化。

抽象工厂模式(Abstract Factory)抽象工厂是所有工厂模式中最为抽象和最具有一般性的一种形态。抽象工厂可以向客户提供一个接口,使得客户可以在不必指定产品的具体类型的情况下,创建多个产品族中的产品对象,强调的是“系列对象”的变化。


生成器模式(Builder Pattern)把构造对象实例的逻辑移到了类的外部,在这个类的外部定义了这个类的构造逻

辑。他把一个复杂对象的构造过程从对象的表示中分离出来。其直接效果是将一个复杂的对象简化为一个比较简单

的目标对象。他强调的是产品的构造过程。


原型模式(Prototype Pattern)和工厂模式一样,同样对客户隐藏了对象创建工作,但是,与通过对一个类进行

实例化来构造新对象不同的是,原型模式是通过拷贝一个现有对象生成新对象的。


Factory Method,Abstract Factory,Builder都需要一个额外的工厂类来负责实例化“易变对象”,而

Prototype则是通过原型(一个特殊的工厂类)来克隆“易变对象”。

如何选择使用创建型模式

考虑游戏开发场景,假定在这个游戏场景中我们使用到的有墙(Wall),屋子(Room),门(Door)几个部件。在这个过程中,同样是对象的创建问题,但是会根据所要解决的问题不同而使用不同的创建型模式。

如果在游戏中,一个屋子只允许有一个门存在,那么这就是一个使用Signleton模式的例子,确保只有一个Door类

的实例被创建。解决的是对象创建个数的问题。

 

在游戏中需要创建墙,屋子的实例时,为了避免直接对构造器的调用而实例化类,这时就是工厂方法模式了,每一

个部件都有它自己的工厂类。解决的是“单个对象”的需求变化问题。

 

在游戏场景中,不可能只有一种墙或屋子,有可能有现代风格(Modern),古典风格(Classical)等多系列风格

的部件。这时就是一系列对象的创建问题了,是一个抽象工厂的例子。解决的是“系列对象”的需求变化问题。

 

如果在游戏场景中,构成某一个场景的算法比较稳定,例如:这个场景就是用四堵墙,一个屋子,一扇门来构成的

,但具体是用什么风格的墙、屋子和门则是不停的变化的,这就是一个生成器模式的例子。解决的是“对象部分”

的需求变化问题。

 

如果在游戏中,需要大量的古典风格或现代风格的墙或屋子,这时可以通过拷贝一个已有的原型对象来生成新对象

,就是一个原型模式的例子了。通过克隆来解决“易变对象”的创建问题。

 


如果遇到“易变类”,起初的设计通常从Factory Method开始,当遇到更多的复杂变化时,可以考虑重构为其他三

种工厂模式。
 

探索设计模式的魅力:创建型设计模式的比较与决策 本文深入探讨六种创建型设计模式:单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。通过概述各模式的核心概念、应用场景和关键要素,帮助读者理解并掌握这些模式的核心思想。文章还通过比较表和决策流程图,直观地展示了各模式之间的差异和选择依据,为读者提供了实用的设计模式选择指南。 本文的特色在于结合了理论与实践,每个模式都配有详细的代码示例和结构图,帮助读者更好地理解和应用这些模式。 总之,本文旨在为读者提供一篇全面、深入且实用的创建型设计模式指南,帮助读者在实际工作中灵活运用这些模式... 阅读详情

相关推荐

23种设计模式-创建型模式

工厂方法模式(Factory Method Pattern)是创建型设计模式的一种,它提供了一种创建对象的最佳方式。在工厂方法模式中,对象的创建是通过调用一个工厂方法而不是直接调用构造器来完成的。这个工厂方法可以是指定的接口并由子类实现,或者是类的抽象方法。定义工厂方法模式定义了一个创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。涉及到的关键类或接口Product(产品角色):定义工厂方法所创建的对象的接口。ConcreteProduct(具体产品角色)

编程小鹏的博客 1239

设计模式解决的问题

编写软件过程中,程序员面临着来自耦合性、内聚性以及可维护性、可扩展性、重用性、灵活性等多方面的挑战,设计模式是为了让程序具有更好的: 1. 代码重用性(相同功能代码,不用多次编写) 2. 可读性(编程规范性) 3. 可扩展性(增加新功能时十分方便) 4. 可靠性(增加新功能后,对原来的功能没有影响) 5. 实现高内聚,低耦合的特性 # 懂得了设计模式,你就懂了面向对象分析和设计(OOA/D)的精...

ZhongJinHacker的博客 2136

设计模式之创建型5种

设计模式之所以被归纳为23种,而非其他数量,源于GoF(Gang of Four)在1994年的系统性总结和分类。

Marzlam的博客 1063

设计模式常见问题和总结

设计模式可以分为哪几类,分别有哪些设计模式?(10分) 设计模式分为有创建型,结构型,和行为型。 创建型:单例设计模式,工厂设计模式,抽象工厂模式,建造者模式,原型模式 结构型:代理模式,组合模式,享元模式,适配器模式,桥接模式,门面模式,装饰器模式, 行为型:委派模式,策略模式,模板方法模式,观察者模式,访问者模式,责任链模式,迭代器模式,中介模式 2.设计模式有哪些设计原则?(10分) (1)单一职责,一个类只负责一项自己业务,不做其他类的改变操作 (2)开闭原则,对修改关闭,对扩展开放 (3)依赖.

weixin_42243829的博客 739

代码的艺术之路——创建型设计模式

每种设计模式,不同于网上千篇一律的定义或模板代码,我都尽可能从解决工作实际问题出发,通过代码一步步演进最终的设计模式,每种设计模式都力求讲清其来龙去脉,并解剖出一些较为独特的想法和见解,望对诸君能有所帮助!

weixin_45479946的博客 1474

设计模式-创建型模式

目的:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。应用场景:GUI工具包中,为不同的操作系统提供统一的界面元素创建机制。描述:提供一个接口,用于创建一系列相关或相互依赖的对象,而无需指定它们具体的类。核心思想:通过定义一个抽象层来创建一系列产品,而不是单一的产品。客户端代码使用的是由抽象工厂提供的接口,而不直接依赖于具体的产品类。优点:易于交换“系列产品”,因为具体工厂类在运行时被实例化;为大规模的产品设计提供了开放式的兼容性。// 抽象产品A// 具体产品A1。

java_green_hand0909的博客 1161

《设计模式》创建型模式总结

首先,要明确这里所说的设计模式重点聚焦系统级的设计,系统本质上是一组类实例的组合,它区别于单一的类或者接口的设计,需要一定的抽象才能够使得后续的编码工作更有效率。创建型模式的最主要作用就是抽象了系统的实例化过程。在没有这种抽象之前,系统的实例化只是单纯的被看作是N个类的实例化,不利于后续的编码执行。这种抽象在大体上有两个实现的原则。其一是将系统所需要用到的各种类信息给封装起来;其二是把这些类的创建和组合方式也给隐藏起来。总之,整个系统有一套抽象的接口负责统一和外部对接。

weixin_50353846的博客 1446

L298N电机驱动模块的接线使用与代码实现

#include "iostm8s208mb.h" #define u8 uint8_t #define u16 uint16_t #define u32 uint32_t typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned long uint32_t; // 关于LED灯的宏定义 #define LED2 PI_ODR_ODR2 //输出量 #define LE

Clichong 13万+

设计模式创建型

最近在进行设计模式的学习,今天将创建型的设计模式总结在这里,区分不同的设计模式的用法和作用本文讲述了设计模式中5个创建型模式,并且给出了对应的代码示例。用好设计模式可以大大的提升我们的代码的维护性、扩充性。希望大家看完这篇文章能了解,学会这5个设计模式,并且以后在用的时候能想起来。

郝老三~~~~~~~~~~~~~ 5082

时频分析之STFT:短时傅里叶变换的原理与代码实现(非调用Matlab API)

STFT function [STFT, f, t] = mystft(x, win, hop, nfft, fs) % function: [STFT, f, t] = stft(x, win, hop, nfft, fs) % % Input: % x - signal in the time domain % win - analysis window function % hop - hop size % nfft - numb

frostime的博客 13万+

【Python爬虫案例教学】超简洁代码采集原神所有角色信息

(。・∀・)ノ゙嗨 大家好,这里是池鱼

xiaoyuan_____的博客 2421

Java 创建型设计模式详解

概念抽象工厂模式提供了一个接口,用于创建一系列相关或互相依赖的对象,而无需指定它们的具体类。它通常用于创建一组相关产品,如操作系统的不同界面风格。结构抽象工厂类(AbstractFactory):声明创建一组相关产品的方法。具体工厂类(ConcreteFactory):实现抽象工厂的方法,生成一系列具体产品。抽象产品类(AbstractProduct):定义产品的接口。具体产品类(ConcreteProduct):实现具体产品。示例代码// 抽象产品Avoid use();

WenZhang的博客 2309

ChromeOS安装教程

ChromeOS,是基于Linux内核研发的ChromiumOS开源系统的闭源系统,最大的特色就是内置了Chrome浏览器,早期主要以Web云端应用程序为主,后来逐渐引入了Android子系统和Linux子系统。本文主要简述摸索的家用笔记本安装ChromeOS安装方法,供各位玩机朋友参考。

weixin_45751495的博客 8123

设计模式——创建型模式

创建型模式是软件工程中常用的设计模式之一,主要关注对象的创建过程。创建型模式隐藏了对象创建的细节,而不是直接使用new操作符创建对象。

2301_79654063的博客 1403

告别手写代码!用Simulink给TI F28335 DSP自动生成C代码(保姆级环境配置)

本文详细介绍了如何利用Simulink为TI F28335 DSP自动生成C代码,告别传统手写代码的低效与错误。通过保姆级环境配置指南和实战案例,帮助开发者快速掌握模型驱动开发方法,大幅提升嵌入式开发效率,特别适合需要频繁修改算法参数或团队协作的工程师。

weixin_30388677的博客 417

避开命令行!在VMware vCenter 8.0图形化界面里搞定SSL证书续期全流程

本文详细介绍了在VMware vCenter 8.0图形化界面中完成SSL证书续期的全流程,包括计算机SSL证书、VMCA根证书和STS证书的管理。通过可视化操作,管理员无需使用命令行即可高效处理证书问题,确保vSphere环境的稳定运行。文章还提供了证书监控与预警配置的实用技巧,帮助用户提前规避证书过期风险。

weixin_27051161的博客 284

设计模式之创建型模式详解

简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。

zengchenAAA的博客 1769

在银河麒麟V10上部署Atlas 300i Duo:从固件到驱动的一站式踩坑笔记

日期:2025-09-09关键词:鲲鹏920、Atlas 300i Duo、银河麒麟V10、NPU、驱动、固件。

weixin_41544125的博客 2817

设计模式之创建型模式

使用C++语言实现的设计模式中的创建型模式,以简单场景和类图的方式进行建模

duchenlong的博客 270

荔枝派Lichee Nano全志F1C100s烧录避坑指南:从Fel模式到SPI Flash完整流程

本文详细介绍了荔枝派Lichee Nano基于全志F1C100s芯片的SPI Flash烧录完整流程,从FEL模式进入技巧到定制化sunxi-tools编译,再到分区策略与实战烧录步骤。针对开发者常见的烧录程序问题提供了专业解决方案,帮助用户高效完成嵌入式系统部署。

tea88的博客 788

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

设计模式(创建型)

不使用设计模式时,手动复制每个属性不仅容易出错,还可能导致代码冗长和难以维护。尤其当类的属性较多或者可能在未来发生变化时,手动复制每个属性的成本会增加。使用建造者模式构建拥有多个属性的复杂对象时,能够显著提高代码的可读性、可维护性和灵活性,减少出错的可能性。特别是在面对具有多个可选属性的大型对象时,建造者模式是一种非常合适的设计模式。扩展灵活性:如果要添加新的订单类型,比如国际订单,只需新增一个类和,而无需修改现有代码。低耦合性。

xue2464874018的博客 978

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

设计模式之创建型设计模式

创建型设计模式是用于对象的创建和实例化的模式,旨在解决对象的创建问题,以便更加灵活地创建对象并将对象与使用它们的代码分离。单例模式(Singleton Pattern):确保一个类只有一个实例,并提供对该实例的全局访问点。工厂模式(Factory Pattern):定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类中。抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或依赖对象的接口,而无需指定它们具体的类。

zz18532164242的博客 766

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

设计模式——创建型

3y_基础掌握 codeGuide实战 cs-notes面试前复习 B站视频讲解

kk阿彬 451

Java设计模式之创建型模式

单例模式 应用场合: 在一个JVM中,该对象只需有一个实例存在 特点: 对于创建频繁的大型对象可以降低系统开销 减轻GC压力(Garbage collection) 安全(核心交易引擎) 实现方式: 加载类时直接创建类的实例(性能提前消耗 浪费) public class Singleton { private Singleton(){}; private

yhao的博客 3823

设计模式--六种创建型模式

前言   每几种模式之间都有一定的联系,从中发现它们的相同点和不同点,研究发生改变的节点,这就是本篇博客所要说明的创建型设计模式之间的联系。它们包括:简单工厂模式、单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。 创建型模式的基本理解 创建型模式抽象了实例化过程。它们帮助一个系统独立于如何创建、组合和表示它的那些对象。 一个类创建型模式使用继承改变被实例

冯浩月 9638
上一篇: 我打赌,你小时侯肯定写过这些话
下一篇: 结构型设计模式总结(上)
Image_Graphics
博客等级 码龄20年 18粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值