设计模式笔记

合集下载

漫画设计模式_笔记

漫画设计模式_笔记

《漫画设计模式》读书札记目录一、基础概念 (2)1.1 漫画设计的定义与特点 (3)1.2 设计模式的分类与应用 (4)二、漫画创作中的基本原则 (6)2.1 角色设定与表现 (7)2.2 故事情节与布局 (8)2.3 色彩、线条与质感 (9)三、漫画设计模式概述 (10)3.1 角色设计模式 (11)3.1.1 主角型 (13)3.1.2 反派型 (14)3.1.3 配角型 (15)3.2 故事叙述模式 (16)3.2.1 线性叙述 (17)3.2.2 非线性叙述 (18)3.2.3 多线叙述 (20)3.3 场景描绘模式 (21)3.3.1 宏大场景 (22)3.3.2 微观场景 (24)3.3.3 转场效果 (24)四、经典漫画设计模式分析 (26)4.1 《守望先锋》的角色设计 (27)4.2 《海贼王》的故事叙述 (28)4.3 《鬼灭之刃》的场景描绘 (29)五、如何在实际漫画创作中应用设计模式 (30)5.1 根据角色性格和故事背景选择合适的设计模式 (32)5.2 运用设计模式提升漫画的视觉效果和叙事节奏 (33)5.3 不断尝试和创新,打破常规,形成自己的设计风格 (34)六、总结与展望 (35)6.1 读书体会与收获 (36)6.2 对未来漫画设计的展望 (38)一、基础概念在深入探讨《漫画设计模式》我们首先需要明确一些基础概念,这些概念将为后续的内容奠定基石。

漫画与设计模式:漫画,作为一种视觉艺术形式,通过图像和文字共同讲述故事。

而设计模式,则是软件开发领域中的一个重要概念,它提供了一种可复用的解决方案,旨在帮助开发者解决在面对复杂问题时出现的常见问题。

将设计模式引入漫画创作,意味着我们可以借鉴软件开发中的优秀实践,以提高漫画创作的效率和质量。

设计原则与模式:设计原则是设计工作的基础,它们指导着设计师如何创造出既美观又有效的作品。

常见的设计原则包括对比、重复、对齐和亲密性等。

研磨设计模式--摘录笔记1.1

研磨设计模式--摘录笔记1.1

研磨设计模式--摘录笔记第一章:设计模式基础设计模式:是指在软件开发中,经过验证的,用于解决在特定环境下,重复出现的、特定问题的解决方案。

这23种设计模式,GoF把它们分为三类。

创建型模式:抽象了对象实例化过程,用来帮助创建对象的实例。

行为型模式:描述算法和对象间职责的分配。

结构型模式:描述如何组合类和对象以获得更大的结构。

要从思想上和方法上吸收设计模式的精键,并融入到自己的思路中,在进行软件的分析和设计的时候,能随意地、自然而然地应用,就如同自己思维的一部分.第2 章简单工厂(GoF的著作中没有)定义:提供一个创建对象实例的功能,而无须关心其具体实现。

被创建实例的类型可以是接口、抽象类,也可以是具体的类。

本质:选择实现优点:帮助封装;解耦缺点:可能增加客户端的复杂度;不方便扩张子工厂。

易混模式:A.抽象工厂模式:如果抽象工厂退化成只有一个实现,不分层次,那么就相当于简单工厂了。

B.工厂方法模式:如果把工厂方法中选择的实现放到父类中直接实现,那就等同于简单工厂。

何时选用:• 如果想要完全封装隔离具体实现,让外部只能通过接口来操作封装体,那么可以选用简单工厂,让客户端通过工厂来获取相应的接口,而无须关心具体的实现。

• 如果想要把对外创建对象的职责集中管理和控制,可以选用简单工厂,一个简单工厂可以创建很多的、不相关的对象,可以把对外创建对象的职责集中到一个简单工厂来,从而实现集中管理和控制。

第3章外观模式(GoF的著作中划分为结构型)定义:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

本质:封装交互,简化调用优点:松散耦合;简单易用;更好地划分访问层次。

缺点:过多或不太合理的Facade也容易让人迷惑,到底是调用Facade好呢,还是直接调用模块好。

易混模式:中介者模式外观模式是封装内部,方便外部使用;中介者模式是都是同事之间的关系,不分内外------自己总结的何时选用:1.如果你希望为一个复杂的子系统提供一个单接口的时候,可以考虑使用外观模式。

23种设计模式记忆 口诀

23种设计模式记忆 口诀

23种设计模式记忆口诀1.单例模式:独一无二,最重要。

2.工厂模式:制造者,无需说。

3.抽象工厂:一族产品,同根源。

4.建造者模式:一步一步,建造家。

5.原型模式:克隆专家,快捷法。

6.适配器模式:转换者,聪明智。

7.桥接模式:结构优化,灵活性。

8.装饰模式:装饰者,美化家。

9.组合模式:树形结构,组合家。

10.外观模式:微缩封装,简洁家。

11.享元模式:享元工厂,节省家。

12.代理模式:替身幕后,保护家。

13.模板方法:算法继承,不变家。

14.策略模式:行为封装,灵活家。

15.命令模式:命令者,有权家。

16.职责链模式:可扩展,级别性。

17.状态模式:状态管理,干净家。

18.观察者模式:被观察,自主家。

19.中介者模式:中介者,沟通家。

20.迭代器模式:循环选择,简化家。

21.访问者模式:动态添加,扩展家。

22.备忘录模式:状态备份,还原家。

23.解释器模式:解释语言,特殊家。

以上23种设计模式,为了更好地记忆,我把它们组合成了一个口诀:最重要的单例模式,工厂与抽象同皇冠。

建造渐进如养家,克隆是原型美化家。

适配器桥接转化家,组合成树形结构家。

装饰装扮美化家,微缩封装外观家。

享元共用节省家,代理替身保护家。

策略模式灵活家,命令者有权家。

职责链扩展级别性,状态干净管理家。

被观察自主家,中介者沟通家。

循环迭代简化家,访问者动态扩展家。

备忘录变化还原家,解释语言特殊家。

这个口诀是通过把每个模式的主要特点和功能用简洁的语句表达出来,然后通过排列组合的方式形成的。

相信这个口诀会让你更容易地记忆这23种设计模式,并且可以在以后的工作中灵活地运用它们。

23种设计模式记忆口诀

23种设计模式记忆口诀

23种设计模式记忆口诀设计模式是软件开发中常见的解决方案模板,它们能够解决许多常见的设计问题。

为了帮助记忆23种设计模式,可以使用下面这个口诀来记忆:Creational Patterns(创建型模式):1. Singleton(单例模式):一个类能产生一个实例,全局访问。

2. Builder(建造者模式):分步骤创建复杂对象,易拓展。

3. Factory Method(工厂方法模式):子类决定实例化哪个对象。

4. Abstract Factory(抽象工厂模式):创建一组相关对象,不依赖具体类。

5. Prototype(原型模式):通过复制现有对象来创建新对象。

Structural Patterns(结构型模式):6. Adapter(适配器模式):将类的接口转换为客户端希望的接口。

7. Bridge(桥接模式):将抽象部分与实际部分分离。

将对象组合成树形结构来表示部分整体的层次结构。

9. Decorator(装饰器模式):动态地给对象添加功能。

10. Facade(外观模式):提供一个统一的接口,简化客户端使用。

11. Flyweight(享元模式):共享细粒度对象,减少内存使用。

12. Proxy(代理模式):控制对其他对象的访问。

Behavioral Patterns(行为型模式):13. Chain Of Responsibility(责任链模式):将请求的发送者和接收者解耦,多个对象都可能处理请求。

将请求封装成对象,可以用参数化方式处理。

15. Iterator(迭代器模式):提供一种遍历集合的统一接口。

16. Mediator(中介者模式):将多个对象之间的复杂关系解耦。

17. Memento(备忘录模式):将对象的状态保存起来,以后可以恢复。

18. Observer(观察者模式):当一个对象改变状态时,依赖它的对象都会收到通知。

19. State(状态模式):对象的行为随状态的改变而改变。

系统架构设计师23种设计模式记忆口诀

系统架构设计师23种设计模式记忆口诀

系统架构设计师23种设计模式记忆口诀设计模式分为三种类型:创建型设计模式(4种:工厂模式(工厂模式、抽象工厂模式)、单例模式、原型模式、建造者模式)主要用户创建对象;创建型:创建模式创对象。

工厂模式要抽象;单例只有一个类;拷贝原型创对象;建造复杂的对象。

解释:创建模式主要用于创建对象。

工厂模式根据业务需要分为简单工厂模式、工厂方法模式和抽象工厂模式;原型模式用于创建重复的对象,通过拷贝这些原型创建新的对象;建造者模式使用多个简单的对象一步一步构建成一个复杂的对象。

------------------------------------------------------------------------------- 结构型设计模式(8种:代理模式、外观模式、装饰器模式、享元模式、组合模式、适配器模式、桥接模式、过滤器)主要关注类和对象的组合;结构型:结构组合类对象。

代理外观装饰器;享元组合适配器;桥接不能过滤器。

代理对象访问者;外观一致的接口;装饰动态添职责;享元共享搞对象。

组合对象像棵树;适配接口能兼容;桥接抽象与实现;不同标准来过滤。

解释:结构型设计模式主要关注类和对象的组合。

主要有代理模式、外观模式、装饰器模式、享元模式、组合模式、适配器模式、桥接模式不能继承,过滤器模式。

代理模式为其他对象提供一种代理以控制对这个对象的访问;外观模式通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式,这是典型的”迪米特原则“;装饰器模式动态地给一个对象添加一些额外的职责;享元模式运用共享技术来有效地支持大量细粒度对象的复用;组合模式将对象组合成树形结构以表示"部分-整体"的层次结构;适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作;桥接模式将抽象部分与实现部分分离,使它们都可以独立的变化;过滤器模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来行为型设计模式(11种:模板模式、策略模式、迭代器模式、中介模式、备忘录模式、解释器模式、观察者模式、访问者模式、状态模式、责任链模式、命令模式)主要关注对象间通信的问题。

2021年设计师笔记

2021年设计师笔记

2021年设计师笔记一、设计趋势的变迁1. 极简主义回归随着生活节奏的加快,人们越来越追求简单、纯粹的设计。

极简主义在这一年回归,以简洁的线条、干净的版面和低调的色彩,为用户带来宁静的视觉体验。

2. 抽象艺术融入设计抽象艺术以其独特的魅力,逐渐成为设计领域的新宠。

设计师们将抽象元素融入作品中,使设计更具艺术性和观赏性。

3. 国潮风兴起2021年,国潮风在设计界崭露头角。

设计师们将传统文化与现代审美相结合,创作出独具特色的国潮作品,展现了民族自信。

4. 环保理念深入人心环保成为全球关注的焦点,设计师们也开始将环保理念融入作品。

绿色、可持续的设计逐渐成为主流,传递出关爱地球的美好愿景。

5. 互动性增强随着科技的发展,设计师们越来越注重作品的互动性。

通过创新的设计手法,让用户参与其中,提高用户体验。

二、设计工具的迭代1. Adobe Creative Cloud作为设计师的必备软件,Adobe Creative Cloud在2021年推出了全新版本,功能更强大,操作更便捷。

2. SketchSketch凭借其出色的矢量绘图功能,成为UI/UX设计师的首选工具。

2021年,Sketch推出了一系列实用的新功能,进一步提升设计师的工作效率。

3. FigmaFigma作为一款在线设计工具,以其协同办公和实时预览的特点,受到越来越多设计师的喜爱。

2021年,Figma不断完善功能,成为设计界的一股新势力。

4. ProcreateProcreate是一款专为iPad设计的绘画软件,凭借其强大的绘画功能,成为数字艺术家的新宠。

2021年,Procreate推出新版本,进一步优化用户体验。

三、设计师的成长与反思1. 深入了解用户需求设计师应始终关注用户需求,以用户为中心进行设计。

了解用户的心理、行为和习惯,才能创作出更具针对性的作品。

2. 提高沟通能力3. 不断学习,拓宽视野设计领域不断发展,设计师应保持好奇心,不断学习新知识、新技能,拓宽视野,提升自己的综合素质。

23种设计模式记忆口诀

23种设计模式记忆口诀

23种设计模式记忆口诀
1.单例模式:唯一实例化,静态访问,线程不安全
2. 工厂方法模式:子类实现,工厂创建,扩展性强
3. 抽象工厂模式:创建一族产品,接口约束,扩展性强
4. 建造者模式:组合复杂对象,分步骤构建,灵活性高
5. 原型模式:克隆对象,避免重复创建,效率高
6. 适配器模式:兼容接口不同,类似转换器,易扩展
7. 桥接模式:抽象与实现分离,解耦合,易扩展
8. 装饰器模式:动态增强对象功能,不影响原有对象,易扩展
9. 组合模式:层次结构,统一访问,易扩展
10. 外观模式:简化复杂系统调用,易使用,易扩展
11. 享元模式:共享资源,避免重复创建,效率高
12. 代理模式:增强对象功能,控制对象访问,易扩展
13. 责任链模式:多个对象处理请求,自动传递,易扩展
14. 命令模式:将请求封装成对象,易扩展,易记录日志
15. 解释器模式:解释语言,易扩展,易维护
16. 迭代器模式:遍历集合,统一访问,易扩展
17. 中介者模式:分离对象间交互,降低耦合,易扩展
18. 观察者模式:对象状态改变,通知观察者,易扩展
19. 备忘录模式:保存对象状态,易恢复,易扩展
20. 状态模式:对象状态改变,自动改变行为,易扩展
21. 策略模式:选择不同策略,易切换,易扩展
22. 模板方法模式:定义操作流程,易扩展,易维护
23. 访问者模式:统一访问集合中对象,易扩展,易维护。

FlyWeight模式——设计模式学习笔记

FlyWeight模式——设计模式学习笔记

FlyWeight模式——设计模式学习笔记FlyWeight模式⼀意图运⽤共享技术有效地⽀持⼤量细粒度的对象。

⼆动机有些应⽤程序得益于在其整个设计过程中采⽤对象技术,但简单化的实现代价极⼤。

使⽤⾯向对象的抽象化,可能会造成庞⼤的对象群,造成空间的巨⼤消耗,⽽影响性能。

在⽂档编辑器例⼦中如果⼀个字符对应⼀个对象,那么⼀篇⽂档所要容纳的对象将是⾮常的庞⼤耗费⼤量的内存。

⽽实际组成⽂档的字符是有限的,是由这些字符不同的组合和排列得到的。

所以需要共享,将基本的字符进⾏共享,将使得字符对象变得有限。

Flyweight只存储相应的字符代码这⾥的关键概念是内部状态和外部状态之间的区别。

内部状态存储于flyweight中,它包含了独⽴于flyweight场景的信息,这些信息使得flyweight可以被共享。

如字符代码,字符⼤⼩…… 外部状态取决于flyweight场景,并根据场景⽽变化,因此不可共享。

⽤户对象负责在必要的时候将外部状态传递给flyweight。

如字符位置,字符颜⾊……三适⽤性及其结构当以下情况都成⽴时使⽤Flyweight模式:•⼀个应⽤程序使⽤了⼤量的对象。

• 完全由于使⽤⼤量的对象,造成很⼤的存储开销。

• 对象的⼤多数状态都可变为外部状态。

• 如果删除对象的外部状态,那么可以⽤相对较少的共享对象取代很多组对象。

• 应⽤程序不依赖于对象标识。

由于Flyweight对象可以被共享,对于概念上明显有别的对象,标识测试将返回真值。

结构:description:•Flyweight— 描述⼀个接⼝,通过这个接⼝Flyweight可以接受并作⽤于外部状态。

• ConcreteFlyweight— 实现Flyweight接⼝,并为内部状态(如果有的话)增加存储空间。

ConcreteFlyweight对象必须是可共享的。

它所存储的状态必须是内部的;即,它必须独⽴于Concrete Flyweight对象的场景。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、"开放-封闭"原则(OCP)Open-Closed Principle原则讲的是:一个软件实体应当对扩展开放,对修改关闭二、里氏代换原则(LSP)Liskov Substitution Principle(里氏代换原则):子类型(subtype)必须能够替换它们的基类型。

三、依赖倒置原则(DIP)依赖倒置(Dependence Inversion Principle)原则讲的是:要依赖于抽象,不要依赖于具体。

抽象不应当依赖于细节;细节应当依赖于抽象;要针对接口编程,不针对实现编程。

四、接口隔离原则(ISP)接口隔离原则(Interface Segregation Principle)讲的是:使用多个专门的接口比使用单一的总接口总要好。

换而言之,从一个客户类的角度来讲:一个类对另外一个类的依赖性应当是建立在最小接口上的。

实现方法:1、使用委托分离接口2、使用多重继承分离接口五、合成/聚合复用原则(CARP)合成/聚合复用原则(Composite/Aggregate Reuse Principle或CARP)经常又叫做合成复用原则(Composite Reuse Principle或CRP),就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新对象通过向这些对象的委派达到复用已有功能的目的。

简而言之,要尽量使用合成/聚合,尽量不要使用继承。

区分"Has-A"与"Is-A""Is-A"是严格的分类学意义上定义,意思是一个类是另一个类的"一种"。

而"Has-A"则不同,它表示某一个角色具有某一项责任。

六、迪米特法则(LoD)迪米特法则(Law of Demeter或简写LoD)又叫最少知识原则(Least Knowledge Principle 或简写为LKP),也就是说,一个对象应当对其它对象有尽可能少的了解。

迪米特法则与设计模式Facade模式、Mediator模式创建型模式种类•Singleton单例模式,保证一个类仅有一个实例•Factory Method工厂方法模式,定义一个创建对象的接口,并控制用哪一个类进行实例化•Abstract Factory–抽象工厂模式,创建一系列相关或相互依赖的对象•Prototype–原型模式,通过拷贝现有对象来生成新对象(克隆方法)•Builder–生成器模式,将构造对象实例的代码逻辑移到类的外部结构型模式•结构型模式涉及到如何组合类或对象,以获得更大的结构•结构型类模式采用继承机制来组合接口或实现•结构型对象模式描述了如何对一些对象进行组合,从而实现新功能的一些方法Adapter适配器模式,将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作适配器(Adapter)模式•桥梁(Bridge)模式,将抽象部分与它的实现部分分离,使它们都可以独立地变化•Composite组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性合成(Composite)模式•Decorator 装饰模式,动态地给一个对象添加一些额外的职责装饰(Decorator)模式•Facade 外观模式,为子系统中的一组接口提供一个一致的界面,使得这一子系统更加容易使用•Flyweight 享元模式,运用共享技术有效地支持大量细粒度的对象享元(Flyweight)模式•Proxy代理模式,为其他对象提供一种代理以控制对这个对象的访问代理(Proxy)模式行为型模式•行为型模式涉及到算法和对象间职责的分配•行为型模式不仅描述对象或类的模式,还描述它们之间的通信模式,将注意力转移到对象间的联系方式上来行为型模式种类•Chain of responsibility–职责链模式,使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系职责链(Chain of Responsibility)模式•Command–命令模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作•Interpreter 解释器模式,给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子•Iterator迭代器模式,提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示•Mediator中介者模式,用一个中介对象来封装一系列的对象交互•Memento 备忘录模式,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。

这样以后就可将该对象恢复到原先保存的状态•Observer观察者模式,定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新(事件)•State状态模式,允许一个对象在其内部状态改变时改变它的行为•Strategy–策略模式,定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换•TemplateMethod 模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中(使用继承,把公共的方法放到基类就属于模板)•Visitor访问者模式,表示一个作用于某对象结构中的各元素的操作∙简单工厂(Simple Factory)模式∙工厂方法(Factory Method)模式∙抽象工厂(Abstract Factory)模式五、优点与缺点:优点:工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅"消费"产品。

简单工厂模式通过这种做法实现了对责任的分割。

缺点:当产品有复杂的多层等级结构时,工厂类只有自己,以不变应万变,就是模式的缺点。

因为工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。

同时,系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,有可能造成工厂逻辑过于复杂。

另外,简单工厂模式通常使用静态工厂方法,这使得无法由子类继承,造成工厂角色无法形成基于继承的等级结构。

Simple Factory模式角色与结构:Factory Method模式角色与结构:工厂方法模式与简单工厂模式工厂方法模式与简单工厂模式再结构上的不同不是很明显。

工厂方法类的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上。

抽象工厂(Abstract Factory)模式抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。

为了方便引进抽象工厂模式,引进一个新概念:产品族(Product Family)。

所谓产品族,是指位于不同产品等级结构,功能相关联的产品组成的家族。

在什么情形下使用抽象工厂模式:在以下情况下应当考虑使用抽象工厂模式:∙一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重要的。

∙这个系统有多于一个的产品族,而系统只消费其中某一产品族。

∙同属于同一个产品族的产品是在一起使用的,这一约束必须在系统的设计中体现出来。

∙系统提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于实现。

"开放-封闭"原则"开放-封闭"原则要求系统对扩展开放,对修改封闭。

通过扩展达到增强其功能的目的。

对于涉及到多个产品族与多个产品等级结构的系统,其功能增强包括两方面:增加产品族:Abstract Factory很好的支持了"开放-封闭"原则。

增加新产品的等级结构:需要修改所有的工厂角色,没有很好支持"开放-封闭"原则。

综合起来,抽象工厂模式以一种倾斜的方式支持增加新的产品,它为新产品族的增加提供方便,而不能为新的产品等级结构的增加提供这样的方便。

单例(Singleton)模式Singleton拥有一个私有构造函数,确保用户无法通过new直接实例它。

除此之外,该模式中包含一个静态私有成员变量instance与静态公有方法Instance()。

注意:不要使用单例模式存取全局变量。

这违背了单例模式的用意,最好放到对应类的静态成员中。

不要将数据库连接做成单例,因为一个系统可能会与数据库有多个连接,并且在有连接池的情况下,应当尽可能及时释放连接。

Singleton模式由于使用静态成员存储类实例,所以可能会造成资源无法及时释放,带来问题。

sealed class Singleton{private Singleton();public static readonly Singleton Instance=new Singleton();}Singleton类被声明为sealed,以此保证它自己不会被继承。

也有一些问题,比如无法继承,实例在程序一运行就被初始化,无法实现延迟初始化等建造者(Builder)模式public static void Main( string[] args ){// Create director and buildersDirector director = new Director( );Builder b1 = new ConcreteBuilder1();Builder b2 = new ConcreteBuilder2();// Construct two productsdirector.Construct( b1 );Product p1 = b1.GetResult();p1.Show();director.Construct( b2 );Product p2 = b2.GetResult();p2.Show();}在什么情况下使用建造者模式以下情况应当使用建造者模式:1、需要生成的产品对象有复杂的内部结构。

2、需要生成的产品对象的属性相互依赖,建造者模式可以强迫生成顺序。

3、在对象创建过程中会使用到系统中的一些其它对象,这些对象在产品对象的创建过程中不易得到。

使用建造者模式主要有以下效果:1、建造模式的使用使得产品的内部表象可以独立的变化。

使用建造者模式可以使客户端不必知道产品内部组成的细节。

2、每一个Builder都相对独立,而与其它的Builder无关。

3、模式所建造的最终产品更易于控制。

原型(Prototype)模式原型模式的用意是:通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多的同类型对象。

说白了就是每个类加个clone方法用于复制自身对象(实现ICloneable接口,实现其方法即可)。

相关文档
最新文档