`

设计模式总结

 
阅读更多

--------------------------------------------------------------构建类模式-----------------------------------------------------------------------

单例模式:

XXXXX

 

工厂模式(factory):

1.若一个产品类(product)的构建需要依赖若干个组件类(component),则将各个组件类的生产和组装过程封装在一个工厂类(factory)中,再由工厂类的createproduct()方法直接创建一个产品类

2.用于创建具有复杂依赖关系的类

 

建造者模式(builder):

1.若一个产品类(product)的构建需要依赖若干个组件类(component),则将各个组件类的生产过程封装在一个建造者类(builder)中,然后将各个组件类的组装过程封装的一个导演类(director)中,再由导演类的getProduct()方法直接创建一个产品类

2.用于创建具有更复杂依赖关系的类

 ---------------------------------------------------------------行为类模式---------------------------------------------------------------------

 模板方法模式:

1.先写一个abstract class的父类,将主要的逻辑封装起来,再由各个子类extends这个父类,实现父类中定义的各个需方法,或重写父类中的方法。这个abstract class 包含三类方法,抽象方法(父类定义,子类实现),模板方法(父类定义,父类实现,子类不可重写),钩子方法(父类定义,父类实现,子类可重写)

2.父类一般由公司的大牛写,属于框架性质的类,其中不重要的方法由公司菜鸟在子类中重写

 

中介者模式:

1.若代码中各个类之间的交互呈网状结构,则新建一个中介者类,将各个类的交互都通过该中介者类来实现,从而使得代码中各个类之间的交互呈星形结构

2.不宜滥用

 

 

 观察者模式

1.被观察者对象(subject)包含(has-a)一个观察者对象列表():Vector<Observer> obs。obs中的每一个 Observer对象包含一个update()方法,每当subject执行一些操作时,就依次调用这些Observer中的update()方法,Observer以此来对subject的操作做出反应。

2.是一种常用的事件触发机制

 

 

访问者模式:

1.

2.

 

 命令模式

1.有一个调用者类(Invoker),内含有(has-a)一个命令类(command),命令类内含有(has-a)一个接受者类(receiver),若想执行接受者类里面的具体操作,则可调用命令类对接受者类内方法的包装方法,或可使用调用者类对命令类的方法的包装方法。

 2.优点是把命令的调用者与执行者分开,使双方不必关心对方是如何操作的。

 

 

 责任链模式:

1.责任链模式其实就是一个灵活版的if…else…语句,它就是将这些判定条件的语句放到了各个处理类中

2.

 

 

策略模式

1.有一个作为接口的策略类(IStrategy),然后又若干具体策略类实现这个接口,有一个语境类(context)包含了一个策略类,这个语境类可以封装具体策略类中的方法,从而调用这些方法。

2.优点:其实就是面向对象中的封装和多态。缺点:必须对客户端(调用者)暴露所有的策略类。

 

 

迭代器模式(重点):

1.

2.任意容器都有相应的迭代器。

 

备忘录模式

1.有一个原始类(Originator),配有一个备忘录类(memento),该备忘录类被一个备忘录管理类(Caretaker )包含。当原始类内的数据需要修改时,使用备忘录管理类将原始类中的数据拷贝到备忘录类中(使用Caretaker.setMemento()方法)。当需要恢复原始类内的数据时,使用原始类类将备忘录类中的数据拷贝到原始类中(使用originator.restoreMemento()方法)

2.对资源的消耗是比较严重的

 

 

 状态模式

1.

2.

 

 

 ---------------------------------------------------------------结构类模式--------------------------------------------------------------------------

 对象适配器模式

1.有一个用户期待接口(target),一个待适配接口(adaptee),一个适配器接口(adapter)。适配器接口中的方法用的是用户期待接口的方法名,内部调用的却是待适配接口的方法。

2.

 

 桥接模式

1.有一个抽象类为实现类(Implementor),一个抽象类为接口类(Abstraction);有一些具体实现类(concreteImplementor)均继承自实现类。有一些优化接口类均继承自接口类。接口类有一个(has-a)实现类的成员。优化接口类均使用这个成员封装实现类中的各个方法。

2.用法:用户首先new一个特定的优化接口类,接着赋给它一个特定的具体实现类,即可使用。

 

 

装饰模式

1.增加一个修饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为修饰类的构造函数的参数。

2.修饰类必须和原来的类有相同的接口。

 

组合模式

1.有一个抽象类为组合部件类(Component),有一些叶子类(leaf)和合成部件类(Composite)均继承自组合部件类,使用统一的接口。叶子类和合成部件类(非叶节点)组成一棵树,对根节点调用某方法时,自动递归调用其全部子节点的该方法。

2.对复杂的组合类的调用和对简单类的调用实现了统一接口。

 

 

 

外观模式

1.有一些子系统类(subsysytem),有一个外观类(facade),外观类包含有(has-a)这些子系统的私有实例。外观类对这些子系统类的方法做了封装。当客户程序想要调用这些子系统类的方法时,就调用外观类的封装方法。

2.适用于分层结构的系统。

分享到:
评论

相关推荐

    李建忠 C#面向对象设计模式纵横谈(25):设计模式总结

    总结来说,李建忠先生的“设计模式总结”涵盖了C#中广泛使用的设计模式,强调了它们在实际项目中的应用价值。理解并熟练运用这些模式,对于提升C#开发者的专业素养和项目质量具有重大意义。无论是初学者还是经验丰富...

    C#面向对象设计模式纵横谈(25):设计模式总结

    本篇文章将对一系列重要的C#面向对象设计模式进行总结,帮助开发者更好地理解和应用这些模式。 1. 工厂模式:工厂模式是一种创建型设计模式,提供了一种创建对象的最佳方式,通过抽象工厂接口,避免了代码与具体类...

    23种设计模式总结

    设计模式总结,对23种经典模式的分类,各自的使用方法,优缺点进行详细的描述。

    大话设计模式总结.pdf

    大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf

    设计模式总结.pdf

    本总结文档涵盖了所有的设计模式,并对常用的模式进行了详细解释,非常适合程序员在面试前快速复习以及日常学习使用。 文档中提到的六大设计原则,包括单一职责原则、里氏替换原则、接口隔离原则、迪米特法则、开闭...

    Java设计模式总结

    这里主要针对标题“Java设计模式总结”以及描述中提及的资源进行深入阐述。 1. **设计模式的概念**: 设计模式并非具体的代码或库,而是一种在特定上下文中解决常见问题的模板。它们描述了如何在面向对象设计中以...

    23种设计模式总结及案例.pdf

    在《23种设计模式总结及案例》中,通常会涵盖以下主要的设计模式类型: 1. 创建型模式:这类模式主要关注对象的创建过程,使得系统在不指定具体类的情况下创建对象,提高代码的灵活性。包括单例模式(Singleton)、...

    Java 设计模式总结 Java 设计模式总结

    设计模式总结主要包括创建型、结构型和行为型这三大类,每类模式都有其特定的应用场景和目标。 1. 创建型模式(创建对象的模式) - 工厂方法模式:允许将对象的创建过程推迟到子类中,使得代码更具可扩展性和灵活...

    23种软件设计模式总结

    设计模式是软件开发中的一种最佳实践,它是在特定上下文中解决常见问题的模板或蓝图,可以被反复使用,以提高代码的可读性、可维护性和灵活性。在Java编程中,23种经典的设计模式被广泛认可并应用,这些模式分为三大...

    大话设计模式总结.docx

    设计模式总结 设计模式是软件设计中的一种重要概念,它们是经过实践和经验总结出的优秀设计解决方案。设计模式的应用可以使软件设计更加灵活、可维护、可扩展和可重用。本文档对设计模式进行了总结和归纳,主要包括...

    设计模式总结篇

    ### 设计模式总结篇 #### 引言 在软件开发领域,设计模式作为一种重要的方法论,对于提升软件质量、增强代码可维护性和可扩展性具有不可替代的作用。本文旨在总结和探讨设计模式的相关知识,包括架构设计原则、...

    Spring 设计模式总结1

    Spring设计模式总结 在软件开发中,设计模式是解决常见问题的经验总结,它们为程序员提供了在特定场景下设计高效、可维护代码的蓝图。在Spring框架中,许多设计模式被广泛应用,以提升系统的灵活性和可扩展性。以下...

    .Net 面向对象及设计模式总结

    《.Net 面向对象及设计模式总结》是一份深度涵盖.Net开发中面向对象编程原理和设计模式的宝贵资料,特别适合初学者巩固基础知识,以及有经验的开发者进行复习和提升。通过阅读这些笔记,我们可以深入理解面向对象的...

    常见的设计模式总结

    自己根据老师的课件的和讲解,总结的关于程序设计模式的知识,拿出来和大家分享一下,希望能帮到和我一样,在学设计模式时遇到困难的同学。

    设计模式总结-模板设计模式,单例模式(singleTon)

    ### 设计模式总结:模板设计模式与单例模式 #### 模板设计模式 模板设计模式是一种行为型设计模式,它定义了一个算法的骨架,并允许子类为算法的某些步骤提供具体的实现。通过这种方式,算法的基本流程保持不变,...

    设计模式总结-java与模式清晰版

    "设计模式总结-java与模式清晰版"这个标题表明我们即将探讨的是关于Java编程语言中的设计模式,旨在帮助开发者更好地理解和应用这些模式。这篇博文链接(https://410063005.iteye.com/blog/1680031)可能提供了详细...

    大话设计模式总结.doc

    设计模式总结 设计模式是软件设计中的一种解决方案,旨在解决软件设计中的一些常见问题。以下是设计模式的总结,涵盖了多种设计模式的概念、特点和应用场景。 一、类图备注 * +public:公共成员变量或方法 * -...

    趣聊设计模式总结1

    设计模式总结 设计模式是软件开发中的一种解决方案,它提供了一种通用的解决方案来解决常见的软件设计问题。设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。 创建型模式(Creational Patterns) *...

    java23种设计模式总结

    java23种设计模式总结 . 设计模式 1.1 创建型模式 1.1.1 工厂方法 1.1.2 抽象工厂 1.1.3 建造者模式 .. 1.1.4 单态模式 .. 1.1.5 原型模式 . 1.2 结构型模式 ... 1.2.1 适配器模式 1.2.2 桥接模式 ........

Global site tag (gtag.js) - Google Analytics