参考:http://www.cnblogs.com/langtianya/archive/2013/03/08/2950934.html
简单工厂模式:客户端传一个条件进工厂类,工厂类根据条件创建相应的产品类对象,并return给客户端,供客户端使用。即客户端使用的是工厂类生产的产品对象。
策略模式:客户端创建一个Context类对象a(可以看作是工厂模式中工厂类),创建一个策略对象并传参给对象a,然后客户端使用a对象的某些方法来使用前面传参进来的策略,即客户端是通过a对象使用策略的。
简单的说,
1、工厂模式根据条件生产出产品给客户端用。而策略模式是客户端使用传参给Context的策略(你也可以理成产品),传入策略的不同,调用同样方法得到的结果也不同。
2、工厂模式:客户端是使用工厂类生产的对象进行操作,策略模式:客户端使用自己传给Context的策略的对象进行操作。
http://www.cnblogs.com/zhouqiang/archive/2012/07/20/2601365.html
策略设计模式:
策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户
环境类(Context):用一个ConcreteStrategy对象来配置。维护一个对Strategy对象的引用。可定义一个接口来让Strategy访问它的数据。
抽象策略类(Strategy):定义所有支持的算法的公共接口。 Context使用这个接口来调用某ConcreteStrategy定义的算法。
具体策略类(ConcreteStrategy):以Strategy接口实现某具体算法。
相关推荐
今天我们将探讨两种重要的设计模式:简单工厂模式和策略模式。这两种模式都是面向对象设计的核心概念,它们各自有着独特的优势和适用场景。 首先,我们来理解简单工厂模式。简单工厂模式是创建型设计模式的一种,它...
它是简单工厂模式的一种扩展,它将产品实例化的责任委托给子类。在手机加工厂的场景中,每个手机品牌工厂都可以看作是工厂方法模式的一个实现,它们各自负责特定型号手机的组装和测试,例如iPhone工厂负责制造iPhone...
工厂模式通常分为简单工厂模式、工厂方法模式和抽象工厂模式三种类型。在实际项目中,例如数据库连接的创建,我们可以使用工厂模式来创建不同类型的连接对象,如MySQL连接、Oracle连接等,而无需关心具体的实现细节...
在软件设计模式中,"简单工厂模式"和"策略模式"是两种常用的设计模式,它们在不同的场景下有着各自的优势。本篇文章将探讨如何利用这两种模式实现简单的排序算法,以提高代码的可读性和可扩展性。 首先,简单工厂...
在软件设计模式的世界里,"简单工厂模式"、"代理模式"和"策略模式"都是经典的设计模式,它们各自有着独特的应用场景和优缺点。本文将深入解析这三种模式的原理和区别,帮助读者理解它们在实际开发中的运用。 首先,...
本案例主要探讨了三种经典的设计模式:抽象工厂模式、工厂方法模式和策略模式,并以手机加工厂为实际应用场景进行阐述。 首先,**抽象工厂模式**是创建型设计模式之一,它提供一个接口,用于创建相关或依赖对象的...
总结来说,Java简单工厂模式相比于传统模式,能够提供更好的代码组织和扩展性,尤其适合需要频繁创建对象且对象种类可能变化的场景。了解并熟练运用简单工厂模式是Java开发者进阶的必经之路,而Spring框架则是在实际...
PHP 设计模式实例之观察者模式、策略模式、简单工厂模式 PHP 设计模式实例之观察者模式、...观察者模式用于在对象之间定义一对多的依赖关系,策略模式用于定义一系列的算法,简单工厂模式用于提供一个创建对象的接口。
简单工厂模式、策略模式以及反射是Java编程中非常重要的概念,它们都是软件设计模式和语言特性的典型应用,对于理解和构建高效、可扩展的代码至关重要。 简单工厂模式是一种创建型设计模式,它提供一个工厂方法,...
工厂模式分为三种主要类型:简单工厂模式、普通工厂模式(也称为工厂方法模式)和抽象工厂模式。 1. **简单工厂模式**: - 简单工厂模式中,有一个中心工厂类,它负责根据输入条件(通常是一个参数)来创建具体的...
通过阅读这些学习资料,你将能更好地理解如何在实际项目中运用策略模式、工厂方法模式和观察者模式,提升自己的编程技能和设计能力。记住,设计模式是为了解决问题,而不是为了模式本身,所以理解其背后的意图和应用...
python 项目里常用的设计模式 单例模式 组合模式 策略模式 抽象工厂 代理模式 工厂模式 观察者模式简单工厂 建造者模式 模板模式 桥接多维度 桥接模式 适配器模式 外观模式 享元模式 责任链组合模式
简单工厂模式在这里可以作为辅助模式,帮助我们根据商品类型创建对应的策略实例。我们可以创建一个`DiscountFactory`类,它有一个静态方法`getDiscountStrategy`,根据传入的商品类型返回相应的折扣策略实例。 在...
在这个场景中,我们主要关注两种设计模式:策略模式和简单工厂模式。这两种模式都是面向对象设计的重要组成部分,它们在商场收银软件的实现中起到了关键作用。 策略模式允许我们定义一系列算法,并将每个算法封装...
【Java 简单工厂模式】简单工厂模式是一种创建型设计模式,它的主要思想是提供一个工厂类,根据传入的参数动态地返回一个产品对象。这种模式将对象的创建与对象的使用分离,使得代码更加简洁且易于维护。 在Java中...
处理层的设计采用了设计模式中的策略模式、模板方法模式和工厂模式。 Server端和Client端的实现也采用了分层的设计方式,包含自定义的模型层、视图层和控制层。 说明:程序采用配置文件的方式进行初始化,运行时时请...
简单工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象的最佳方式。在这个模式中,一个专门的类(称为工厂类)负责...在C++中使用简单工厂模式,可以充分利用面向对象的特性,让程序更加模块化和易于理解。
本文将深入探讨四种常见的设计模式:单件模式(Singleton)、工厂模式(Factory)、策略模式(Strategy)和观察者模式(Observer),并以PHP语言为背景进行解释。 首先,我们来看单件模式。单件模式确保一个类只有...
在Java中,简单工厂、工厂方法和抽象工厂是三种不同的工厂模式实现。 5. **简单工厂模式**:是最简单的工厂模式形式,它包含一个工厂类,根据传入的参数决定返回哪种类型的实例。虽然易于理解,但不易扩展,因为...