`
zl198751
  • 浏览: 278728 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

设计模式学习

阅读更多

组合模式:

组合模式可以形象的比如成树,有叶子节点(Leaf),树枝节点(Composite),这两个节点都需要继承节点的属性(Component), 这样用户使用起来才能达到透明性。且需要具备子节点的管理特点。

子节点管理操作的不同可以分两种组合结构:子节点操作放在Component中

 

 观察者模式:

观察者(Observer)模式又名发布-订阅(Publish/Subscribe)模式。GOF 给观察者模
式如下定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依
赖于它的对象都得到通知并被自动更新。

GOF 给出了以下使用观察者模式的情况:
1) 当一个抽象模型有两个方面, 其中一个方面依赖于另一方面。将这二者封装在独立
的对象中以使它们可以各自独立地改变和复用。
2) 当对一个对象的改变需要同时改变其它对象, 而不知道具体有多少对象有待改变。
3) 当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之, 你不希望
这些对象是紧密耦合的。

观察者可以按是否把“目标对象”变化细节主动给观察者分为:“推模式”和“拉模式”。

 

策略模式(Strategy): 多态的简单利用。

区分变化的和不变的。

不变化的封装在基类中。变化的先分组,将高层通用接口封装在基类中,具体实现由子类决定。

 

 

 

建造模式(Build):将产品的生产过程抽象出“建造抽象类”,由具体的方法生产具体的产品。指导者调用抽象类中的方法创建产品,不用关心具体建 造细节。而使用者直接使用指导者创建产品。 建造模式与工厂方法很像,区别:在原来的工厂方法模式中,产品内部的表
象是由产品自身来决定的;而在建造模式中则是“外部化”为由建造者来负责。这样定义一个
新的具体建造者角色就可以改变产品的内部表象,符合“开闭原则”。

 

门面模式(facade): 简单的将子系统的被调用方法都封装在一个类中供其他客户使用。

 

命令模式:是回调函数在面向对象领域的应用。

将命令抽象出接口,再把一系列的具体命令传入invoker类统一调用。

若命令中实现了undo,redo操作,那么invoker中可以进行命令的回滚,重做,以及事务的实现。

 

适配器模式(Adapter) :适配器模式就想是变压器一样,是将已有实现向目标接口的转换。比如在我的系统中已经设计好了接口结构,客户已经在使用这个接口,但是对于实现我想调用已 有的设计,但是已有的设计跟我的接口不一致,那么现在就需要使用适配器模式,将已有实现转换成我的接口的形式。

<!--{12838463842520}-->

将适 配器模式分为类适配器模式和对象适配器模式。区别仅在于适配器角色对于被适配角色的适配是通过继承完成的还是通过组合来完成的. 一般使用对象适配器。

与代理模式对比,两者的主要区别在于代理模式应用的情况是不 改变接口命名的,而且是对已有接口功能的一种控制;而适配器模式则强调接口转换。

 

 

代理模式:
继承与真实对象一样的接口,实现对真实对象的代理。适合做切面。符合“对扩展开放、对修改关闭”原则。

  • 大小: 53.6 KB
分享到:
评论

相关推荐

    《设计模式学习笔记》

    《设计模式学习笔记》主要探讨了GOF的23种设计模式以及类设计的基本原则,旨在帮助开发者理解和应用这些经过时间验证的成熟解决方案。设计模式是面向对象软件设计中的核心概念,它们为解决常见的设计问题提供了标准...

    Head First 设计模式(高清中文完整版带目录+附书源码+HeadFirst设计模式学习伴侣.rar).7z.002(2-2)

    Head First 设计模式(高清中文完整版带目录)+附书源码+HeadFirst设计模式学习伴侣.rar 又名: Head First Design Patterns 作者: (美)弗里曼(Freeman,E.) 副标题: Head First Design Patterns 简介 ·····...

    HeadFirst设计模式学习伴侣.jpg

    HeadFirst设计模式学习伴侣.jpg

    设计模式学习 ppt

    这个“设计模式学习ppt”资料包显然是一份面向初学者或大学生的教学资源,通过十四个PPT文件深入浅出地讲解了设计模式的各个方面。 首先,我们来看设计模式的基本概念。设计模式是对在特定上下文中反复出现的问题...

    Java设计模式学习.pdf

    文档中描述的是Java设计模式学习笔记,目前涉及了7种设计模式,但没有具体指明这7种模式是什么,计划后续增加更多的模式。虽然文件内容中存在OCR扫描的识别错误,但不影响我们从整体上把握设计模式的脉络和学习方法...

    java设计模式学习

    本资料“java设计模式学习”包含了对设计模式的深入理解和实际应用,通过简单实用的例子,帮助开发者掌握如何在Java项目中运用设计模式。 首先,我们要介绍的是工厂模式。工厂模式是一种创建型设计模式,它提供了一...

    设计模式学习总结.doc

    在《设计模式学习总结》中,作者通过自己的学习经历和实际应用,分享了对23种经典设计模式的理解和感悟。这篇文档主要讨论了设计模式的概念、作用、应用以及学习设计模式时应注意的误区。 设计模式起源于面向对象...

    设计模式学习资料

    Java设计模式,解说通俗易懂,推荐新手学习使用,文档中包含类图

    设计模式学习.zip

    本资源"设计模式学习.zip"聚焦于C++编程语言中的设计模式应用,是2017年的一次黑马程序员培训课程的配套代码,旨在帮助学习者通过实际的代码示例来理解和掌握设计模式。 在C++中,设计模式主要分为三大类:创建型...

    设计模式学习笔记.ppt

    设计模式学习笔记.ppt 自己写的一点学习笔记。

    设计模式学习系列2设计模式影印版

    《设计模式学习系列2设计模式影印版》作为一套学习资料,专注于介绍设计模式的核心理念与实践应用,为读者提供了一个系统性的学习框架。 设计模式主要分为三类:创建型模式、结构型模式和行为型模式。其中,创建型...

    C# 设计模式学习 源码

    本资料包“C# 设计模式学习 源码”包含了作者在学习设计模式过程中的笔记和源码示例,对于想要深入理解C#设计模式的人来说是一份宝贵的资源。 设计模式分为三大类:创建型、结构型和行为型。下面将详细介绍这些类别...

    head first设计模式学习代码

    《Head First设计模式学习代码详解》 设计模式是软件工程中的宝贵经验总结,它提供了一套通用的解决方案模板,帮助开发者在面对复杂问题时能够快速有效地进行设计和开发。Head First设计模式是一本非常受欢迎的设计...

    C++设计模式学习框架

    "C++设计模式学习框架"是一个专为学习和实践这些模式而构建的资源集合,它涵盖了各种常见的设计模式,帮助开发者深入理解并熟练应用到实际项目中。 设计模式通常分为三类:创建型模式(Creational Patterns)、结构...

    设计模式学习经典篇之菜鸟篇

    本资源“设计模式学习经典篇之菜鸟篇”旨在为初学者提供一个全面而通俗易懂的设计模式学习路径。 设计模式的核心在于重用已验证的解决方案,以提高代码的可读性、可维护性和可扩展性。根据GOF(Gamma, Helm, ...

    JAVA设计模式学习【技术文档】

    ### Java设计模式学习概述 #### 标题解读 文档标题为“JAVA设计模式学习【技术文档】”,表明这是一份专注于Java语言的设计模式学习资源。设计模式作为软件工程领域的重要组成部分,它提供了一系列面向对象设计问题...

    设计模式学习指南第一节

    《设计模式学习指南》是一份详细介绍设计模式的资源,旨在帮助开发者理解和掌握设计模式的精髓。 设计模式的学习对于任何想要提升其软件设计能力的人来说都是至关重要的。它可以帮助我们遵循一些核心的设计原则,...

    设计模式学习帮助文档中文字幕高清

    本资源包含的设计模式学习帮助文档和高清中文字幕,旨在提供一个系统化的学习路径,帮助初学者和经验丰富的开发者深入理解并应用设计模式。 设计模式分为三大类:创建型模式、结构型模式和行为型模式。创建型模式...

    C#设计模式学习笔记

    以下是对“C#设计模式学习笔记”中涉及的一些关键知识点的详细解释。 1. **设计模式的基本概念**: 设计模式是一种在特定上下文中已被证明有效的解决方案模板,它描述了如何在软件设计中解决常见问题。设计模式...

Global site tag (gtag.js) - Google Analytics