`
ssxxjjii
  • 浏览: 948525 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

设计模式:策略模式与代理模式等的区别

 
阅读更多
策略模式、代理模式、适配器模式区别 
简单代理模式中,代理类知道被代理类的行为,因为代理类与被代理类实现的是同一个接口,因此代理类与被代理类的结构是相同的; 

而策略模式中,策略容器并不知道内部策略的详细信息,因为容器并没有实现与内部策略相同的接口,即容器与内部策略只是简单的组合关系,容器只是将内部策略的行为抽取出来,进行了统一的实现。 

策略模式在项目中适用于 实现同一个目标但是有很多不同的做法的情况,比如实现数据库里面的搜索,可能算法、方式很多,但是目的差不多。这时候可以使用策略模式 

代理模式主要针对对象的访问控制,比如在hibernate的懒加载中,不希望页面直接访问dao层的数据,这时候给页面开放一个Proxy。 


适配器模式 
    那到底什么时候需要用适配器呢?一个根本的理由就是系统需要使用现有的类,但是这个类的接口不符合当前的要求。



策略模式与简单工厂模式的主要区别是Context类与工厂类的区别。 

引用

A. 策略模式的Context类在简单工厂模式中对应的是工厂类。工厂类只提供一个静态方法,负责创建子类的实例,并返回给调用者(即客户端)。 
B. 在策略模式中,Context类在自己的构造函数中创建具体算法(子类)的实例,当然构造函数不会返回任何值给调用者。但是Context类提供了一个/一些方法,用来封装在基类中定义的算法接口,并返回结果给客户端。从这个意义上说,策略模式就是用来封装算法的。实际上它可以用来封装任何类型的规则。但是简单工厂模式的工厂类就没有提供这样的能力。




桥梁模式 

引用

说到桥梁模式,那就多扯几句,大家对类的继承有什么看法吗?继承的优点有很多,可以把公共的方法 或属性抽取,父类封装共性,子类实现特性,这是继承的基本功能,缺点有没有?有,强关联关系,父类有个方 法,你子类也必须有这个方法,是不可选择的,那这会带来扩展性的问题,我举个简单的例子来说明这个问题: Father 类有一个方法 A,Son 继承了这个方法,然后 GrandSon 也继承了这个方法,问题是突然有一
分享到:
评论

相关推荐

    设计模式:可复用面向对象软件的基础(非扫描版+高清)

    设计模式分为三类:创建型模式(如单例模式、工厂方法模式)、结构型模式(如代理模式、装饰器模式)和行为型模式(如观察者模式、策略模式)。每种模式都有其特定的用途和适用场景。 4. **具体设计模式详解** - ...

    《设计模式:可复用面向对象软件的基础》英文版

    如适配器模式(Adapter)、桥接模式(Bridge)、组合模式(Composite)、装饰者模式(Decorator)、外观模式(Facade)、享元模式(Flyweight)和代理模式(Proxy)等。 - **行为型模式**:关注于对象间的职责分配,...

    设计模式:可复用面向对象软件的基础--详细书签版

    因此我们欢迎广大读者的批评与指正,无论从书中采用的实例、参考,还是我们遗漏的已知应用,或应该包含的设计模式等方面。你可以通过Addison-Wesley写信给我们,或发送电子邮件到:design-patterns@cs.uiuc.edu。你...

    软件体系结构实验报告--设计模式2

    本实验报告主要探讨了五个关键的设计模式:组合模式、外观模式、代理模式、观察者模式以及策略模式,这些都是软件体系结构中的重要组成部分,对于理解和优化代码结构具有深远影响。 1. **组合模式**: 组合模式是一...

    设计模式:可复用的面向对象软件的基础

    设计模式是指在面向对象软件开发中,针对特定问题而设计的解决方案模板,它们是经过时间检验的最佳实践,可以帮助开发者构建灵活、易维护且可复用的软件系统。掌握设计模式对游戏引擎的开发尤其重要,因为游戏引擎...

    23种设计模式之:建造者,代理,观察,策略,状态模式

    本文将重点介绍标题中提到的五种设计模式:建造者模式、代理模式、观察者模式、策略模式以及状态模式。 **1. 建造者模式(Builder)** 建造者模式是一种创建型设计模式,它允许我们分步骤构建复杂对象,而无需暴露...

    设计模式:简单工厂、方法工厂、抽象工厂、单例、原型、委派、模板、代理、策略

    9. **策略**:策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。策略定义了一系列算法,并将每一个算法封装起来,使它们可以相互替换,策略让算法独立于使用它的客户。 这些设计模式都是面向对象编程...

    Java 经典设计模式讲解以及项目实战

    设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述Spring源码中运用到的一些设计模式 ...

    设计模式:可复用面向对象软件设计基础(附源码)

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。这些模式通过前人的经验总结,为开发人员提供了一种标准化的解决方案,使得代码更易于理解、扩展和维护。本资源《设计模式:可...

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

    1. 工厂模式:工厂模式是一种创建型设计模式,提供了一种创建对象的最佳方式,通过抽象工厂接口,避免了代码与具体类的耦合,提高了系统的可扩展性。 2. 单例模式:单例模式确保一个类只有一个实例,并提供全局访问...

    1.《设计模式:可复用面向对象软件的基础(完整书签)》

    《设计模式:可复用面向对象软件的基础》是软件工程领域的一部经典著作,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大师合著,被誉为“Gang of Four”(GoF)的经典之作。这本书详细阐述了23...

    23种设计模式详解PDF

    设计模式 的分类 总体来说设计模式分为三大类: 创建型模式(5): 工厂方法模式 、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式(7): 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、...

    设计模式_基于C#的工程化实现及扩展_源码

    《设计模式:基于C#的工程化实现及扩展》是一份深入探讨软件设计模式的宝贵资源,它提供了C#语言下的具体实现与扩展,旨在帮助开发者提升代码的可读性、可维护性和可复用性。这个压缩包包含了多个源码文件,分别命名...

    简单工厂模式、代理模式、策略模式如此相似

    在软件设计模式的世界里,"简单工厂模式"、"代理模式"和"策略模式"都是经典的设计模式,它们各自有着独特的应用场景和优缺点。本文将深入解析这三种模式的原理和区别,帮助读者理解它们在实际开发中的运用。 首先,...

    java 23种设计模式.zip

    设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。 2.结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 4.行为型模式:...

    python 项目里常用的设计模式 组合模式 策略模式 抽象工厂 代理模式 工厂模式 观察者模式 简单工厂 建造者模式 模板模式

    python 项目里常用的设计模式 单例模式 组合模式 策略模式 抽象工厂 代理模式 工厂模式 观察者模式简单工厂 建造者模式 模板模式 桥接多维度 桥接模式 适配器模式 外观模式 享元模式 责任链组合模式

    设计模式教材pdf 中文版

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决问题的优秀实践和可重用解决方案。《设计模式教材pdf 中文版》是一本针对C++程序员的专业资料,旨在帮助他们理解和应用设计模式来提升代码质量和可...

    设计模式可复用面向对象软件的基础 源码

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。"设计模式可复用面向对象软件的基础"这一主题强调了设计模式在创建可维护、可扩展的面向对象软件中的核心作用。源码实现则为我们...

Global site tag (gtag.js) - Google Analytics