一、23种设计模式
Abstract Factory 抽闲工厂模式——提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
Adapter 适配器模式—–将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
Bridge 桥接模式——将抽象部分与它的实现部分分离,使它们都可以独立地变化。
Builder 生成器模式——将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
Chain of Responsibility 职责链模式——为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。
Command 命令模式——将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。
Composite 组合模式——–将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得客户对单个对象和复合对象的使用具有一致性。
Decorator 装饰模式——动态地给一个对象添加一些额外的职责。就扩展功能而言,Decorator模式比生成子类方式更为灵活。
Facade 外观模式——为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
Factory Method 工厂方法模式——定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。
Flyweight 享元模式——运用共享技术有效地支持大量细粒度的对象。
Interpreter 解释器模式——给定一个语言, 定义它的文法的一种表示,并定义一个解释器, 该解释器使用该表示来解释语言中的句子。
Iterator 迭代器模式—–提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。
Mediator 中介者模式——用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
Memento 备忘模式——在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存的状态。
Observer 观察者模式:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。
Prototype 原型模式——用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。
Proxy 代理模式:为其他对象提供一个代理以控制对这个对象的访问。
Singleton 单态模式——保证一个类仅有一个实例,并提供一个访问它的全局访问点。
State 状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。
Strategy 策略模式——定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。
Template Method 模板方法模式——定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
Visitor 访问者模式—–表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
二、事例:
1.创建型模式
FACTORY?加工工厂:给它“M4A1”,它给你产把警枪,给它“AK47”,你就端了把匪枪。CS里买枪的程序一定是用这个模式的。
BUILDER?生产流水线:以前是手工业作坊式的人工单个单个的生产零件然后一步一步组装做,好比有了工业革命,现在都由生产流水线代替了。如要造丰田汽车,先制定汽车的构造如由车胎、方向盘、发动机组成。再以此构造标准生产丰田汽车的车胎、方向盘、发动机。然后进行组装。最后得到丰田汽车;
PROTOTYPE?印刷术的发明:以前只能临贴抄写费时费力,效率极低,有了印刷术,突突的;
SINGLETON?确保唯一:不是靠new的,是靠instance的,而且要instance地全世界就这么一个实例(这可怜的类,也配叫“类”)。 看SingleTon类代码。
2.结构型模式
ADAPTER?翻译官:胡哥只会汉语,布什只会美语,翻译官既通汉又通美,Adapter了 ;
DECORATOR?装饰:名字可以标识一个人,为了表示对一个人的尊重,一般会称其为“尊敬的”,有了装饰,好看多了;
BRIDGE?白马非马:马之颜色有黑白,马之性别有公母。我们说"这是马"太抽象,说"这是黑色的公马"又太死板,只有将颜色与性别和马动态组合,"这是(黑色的或白色的)(公或母)马"才显得灵活而飘逸,如此bridge模式精髓得矣。
COMPOSITE?大家族:子又生孙,孙又生子,子子孙孙,无穷尽也,将众多纷杂的人口组织成一个按辈分排列的大家族即是此模式的实现;
FACADE?求同存异:高中毕业需读初中和高中,博士也需读初中和高中,因此国家将初中和高中普及成九年制义务教育;
FLYWEIGHT?一劳永逸:认识三千汉字,可以应付日常读书与写字,可见头脑中存在这个汉字库的重要;
PROXY?垂帘听政:犹如清朝康熙年间的四大府臣,很多权利不在皇帝手里,必须通过辅佐大臣去办;
3.行为模式
CHAIN OF RESPONSIBLEITY?租房:以前为了找房到处打听,效率低且找不到好的房源。现在有了房屋中介,于是向房屋中介提出租房请求,中介提供一个合适的房源,满意则不再请求,不满意继续看房,直到满意为止;
COMMAND?借刀杀人:以前是想杀谁就杀,但一段时间后领悟到,长此以往必将结仇太多,于是假手他人,挑拨他人之间的关系从而达到自己的目的;
INTERPRETER?文言文注释:一段文言文,将它翻译成白话文;
ITERATOR?赶尽杀绝:一个一个的搜索,绝不放掉一个;
MEDIATOR?三角债:本来千头万绪的债务关系,忽出来一中介,包揽其一切,于是三角关系变成了独立的三方找第四方中介的关系;
MEMENTO?有福同享:我有多少,你就有多少;
OBSERVER?看守者:一旦被看守者有什么异常情况,定会及时做出反应;
STATE?进出自由:如一扇门,能进能出,如果有很多人随时进进出出必定显得杂乱而安全,如今设一保安限制其进出,如此各人进出才显得规范;
STRATEGY?久病成良医:如人生病可以有各种症状,但经过长期摸索,就可以总结出感冒、肺病、肝炎等几种;
TEMPLATE METHOD?理论不一定要实践:教练的学生会游泳就行了,至于教练会不会则无关紧要;
VISITOR?依法治罪:因张三杀人要被处死,李四偷窃要被罚款。由此势必制定处罚制度,故制定法律写明杀人、放火、偷窃等罪要受什么处罚,经通过后须变动要小。今后有人犯罪不管是谁,按共条例处罚即是,这就是访问者模式诞生的全过程。
分享到:
相关推荐
这本书详细介绍了23种设计模式,这些模式是经过实践检验的解决方案,可以用来解决在面向对象编程和软件工程中常见的设计问题。 设计模式是一种在特定情况下,为了解决特定问题而被反复使用的、已被证明有效的方法或...
本文旨在深入探讨GoF(Gang of Four)提出的23种经典设计模式,并通过C++语言进行具体实现。 #### 1. 创建型模式 创建型模式关注的是对象的创建机制,即如何创建对象,使得系统更加灵活。 ##### 1.1 Factory模式 *...
GOF(Gamma, Helm, Johnson and Vlissides)设计模式是23种经典设计模式的集合,这些模式由四位作者在他们的著作《Design Patterns: Elements of Reusable Object-Oriented Software》中提出。 - **创建型设计模式*...
GoF(Gang of Four)的《设计模式》一书为程序员们提供了一系列经典的面向对象设计解决方案。尽管原书中使用的是C++示例,但随着Java的普及和发展,越来越多的开发者倾向于使用Java来理解和实践设计模式。 #### ...
3. Gang of Four(GoF)提出的策略包括识别设计模式的上下文、理解模式的目标、选择合适的模式、考虑模式的交互和模式的组合。 4. 面向对象系统中功能复用的常用技术是继承和多态。 5. 只根据抽象类中定义的接口来...
设计模式是一种软件设计中常用的解决方案,它可以解决软件设计中的一些通用的问题。设计模式可以分为三大类:创立型模式、结构型模式和行为型模式。 1. 设计模式一般用来解决什么样的问题? 设计模式可以解决同一...
GOF(Gang of Four)四人组提出了23种设计模式,分为创建型、结构型和行为型三大类。设计模式是为了在软件设计中解决常见问题而总结出的最佳实践,目的是为了实现高内聚和低耦合。面向对象设计原则,如单一职责原则...
《Head First Design Patterns》主要涵盖了23种GOF(GoF, Gamma, Helm, Johnson, Vlissides)设计模式,这些模式包括创建型、结构型和行为型三大类。 1. 创建型模式:如单例模式(Singleton)、工厂方法模式...
4. **设计模式**:GOF设计模式(如工厂模式、单例模式、观察者模式等)的应用是考试的常见考点。 5. **数据结构与算法**:理解并能够运用常见的数据结构(如链表、树、图、队列、栈)和算法(排序、查找)是必备...
单例模式确保一个类只有一个实例,常见的GOF设计模式分为结构型、行为型和创建型。MVC模式结合了观察者、策略等模式。面向对象设计的基本原则包括单一职责、开放封闭、里氏替换、依赖倒置、接口隔离和迪米特法则。在...
7. **GoF(Gang of Four Design Patterns)**:GoF设计模式是由四名软件设计专家提出的23种经典设计模式的集合,它们是软件设计的基础,提供了在面向对象设计中解决常见问题的通用解决方案。 8. **Agile 敏捷开发**:...
6. **设计模式**:熟悉23种GOF设计模式,了解其应用场景和优缺点,能够根据问题灵活选择和应用设计模式。 7. **编程语言特性**:对于特定语言,如Java、Python、C++或JavaScript等,深入理解其特性和语法,例如面向...
6. **设计模式**:掌握23种GOF设计模式,能够灵活运用到实际项目中,提高代码的可读性和可维护性。 7. **系统设计**:学习如何设计大规模分布式系统,如负载均衡、缓存策略、CAP理论、BASE原则、微服务架构等。 8....
在设计模式中,GoF的组合模式(Composite Pattern)强调整体对象和部分对象拥有相同的接口,T选项正确。聚合(Aggregation)和组合(Composition)都是表示对象之间的关系,但组合更强调内部对象的生命周期与整体...