设计模式
文章平均质量分 80
calllmq
在路上
展开
-
设计模式 一 值对象模式(The Value Object Pattern)
TestRent();function TestRent() { $game = new Monopoly; $player1 = new Player('Madeline', 1000); $player2 = new Player('Caleb', 1500); $game->payRent($player1, $player2, n转载 2012-03-08 14:43:00 · 1791 阅读 · 0 评论 -
23种设计模式目录导航
创建型: 1. 单件模式(Singleton Pattern) 206 2. 简单工厂(Simple Factory),工厂方法(Factory Method),抽象工厂(Abstract Factory) 146 155 180 3. 建造者模式(Builder) 4. 工厂方法模式(Factory Method)原创 2012-03-26 13:55:30 · 932 阅读 · 0 评论 -
原型模式(Prototype)
<?php/** * 设计模式 一 原型模式 Prototype *//** * 定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型达到创建新的对象目的。 * Prototype原型模式是一种创建型设计模式,Prototype模式允许一个对象再创建另一个可制定的对象, * 根本无需知道任何创建的细节。 * * 工作原理:通过一个原型对象传给 那个要发动创建的对象,这个要原创 2012-04-09 18:27:39 · 631 阅读 · 0 评论 -
设计模式(迭代器模式)----- 行为型模式
行为型模式概述: 迭代器模式(Iterator):提供一种方法顺序一个聚合对象中各个元素,而又不暴露该对象内部表示。实用场合:转载 2012-03-20 11:01:31 · 825 阅读 · 0 评论 -
设计模式(策略模式2)
3 模式讲解3.1 认识策略模式(1)策略模式的功能 策略模式的功能是把具体的算法实现,从具体的业务处理里面独立出来,把它们实现成为单独的算法类,从而形成一系列的算法,并让这些算法可以相互替换。 策略模式的重心不是如何来实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活、具有更好的维护性和扩展性。(2)策略模式和if-else语句转载 2012-03-19 14:23:15 · 479 阅读 · 0 评论 -
设计模式(策略模式)
首先感谢众多朋友的支持、评论和鼓励,只有多多努力,写点好的博文来回报大家的好意! 接下来想写写另外一个虽然较简单,但是使用很频繁的模式——策略模式策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。行为型模式策转载 2012-03-19 14:12:15 · 487 阅读 · 0 评论 -
设计模式 一 创建者模式 Builder(生成器)
<?php/** * 设计模式 一 创建者模式 Builder(生成器) * 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化, * 这个复杂对象的各个部分子对象经常面临着剧烈的变化,但是将它们组合在一起的算法绝对的稳定。 * 如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳原创 2012-03-31 15:43:19 · 669 阅读 · 0 评论 -
设计模式(伪对象模式)
伪对象是对象在测试中的一个替代品,用它测试代码更加简便。例如,替代一个真实的数据连接——这个真实的数据连接由于一些原因而不能实际连接——你就可以创建一个伪对象来模拟。这意味着伪对象需要准确地回应代码中所调用的相同的应用程序接口。 面向对象的编程之所以丰富多彩,部分是由于对象间的相互联系与作用。一个单一的对象就能封装一个复杂的子系统,原创 2012-03-16 15:04:39 · 400 阅读 · 0 评论 -
设计模式--注册模式
注册表的作用是提供系统级别的对象访问功能。有的同学会说,这样是多此一举,不过小项目中的确没有必要对类进行注册,如果是大项目,还是非常有用的。<?php //基础类 class webSite {//一个非常简单的基础类 private $siteName; private $siteUrl; function __construct($siteName,$转载 2012-03-15 11:21:57 · 1338 阅读 · 0 评论 -
设计模式之创建型模式
工厂方法模式:提供一个简单的决策类,根据条件生成产品。抽象工厂模式:提供一个创建并返回一系列产品的接口。单件模式:某个类只能有一个实例。提供一个全局访问点。(可拓展到有限个实例)生成器模式:将一个复杂对象的构建于呈现分开,以便根据不同需要创建不同的形式。原型模式:先实例化一个类,然后克隆或者拷贝该类来构建新的实例。可以用共有方法进一步修改这些实例。难点:抽象工厂模式与生成器模式转载 2012-03-31 17:39:08 · 694 阅读 · 0 评论 -
设计模式 一 单例模式Singleton
/** * 单例模式,顾名思义强调的是单一,只有一个实例,而且自行实例化并向整个系统提供这个实例。 * * 创建型模式 * 条件3点 * 1、需要一个静态变量,保存类的唯一实例。 * 2、需要一个公共静态方法,返回唯一实例的一个引用。 * 3、构造函数(__construct)、克隆函数(__clone)私有化,从而防止外部程序 new 类,从而失去单例模式的意义。 * * 优点原创 2012-03-13 10:47:00 · 1087 阅读 · 0 评论 -
设计模式 一 抽象工厂Abstract Factory(工厂模式)
<?php/** * 原料家族 * * 随着比萨店加盟店越来越多,有些加盟店为了提高利润,从而降低了原料的质量,所有总店必须采取一些措施,避免损害公司形象的品牌。 *//** * 措施:保持原料一致 * 问题1:如何确保原料一致,打算建造一家生产原料的工厂,并送到各家加盟店。 * 问题2:各个加盟店坐落在不同的区域,纽约的红酱料和芝加哥的红酱料是不一样的。 * 所有让我们准备原创 2012-03-30 14:17:21 · 635 阅读 · 0 评论 -
设计模式 一 工厂方法Factory Method(工厂模式)
<?php/** * 工厂方法模式演变 * * 比萨加盟店 * 背景:随着比萨店的发展,有更多人想成为比萨加盟店。 *//** * 每家加盟店都可能想要提供不同风味的比萨(比方说纽约、芝加哥、加州),这受到了开店地点影响。 *//** * 我们已经有一个做法。。。 * 如果利用SimpleFactory,写出三种不同的工厂,分别为NYPizzaFactory、Chi原创 2012-03-29 15:17:01 · 803 阅读 · 0 评论 -
设计模式 一 简单工厂Simple Factory(工厂模式)
<?php/** * 简单工厂的演变 */ /** * 引导 * * 1、当看到 “new”, 就会想到具体。导致代码更脆弱更缺乏弹性。,使用接口让代码具有弹性。 * 2、针对接口编程,可以隔离掉以后系统可能发生的一大堆改变。why?如果代码是针对接口而写,那么通过多态,它可以与任何新类实现该接口。 * 但是,当代码使用大量的具体类时,等于是自找麻烦,因为一旦加入新的原创 2012-03-29 10:20:47 · 684 阅读 · 0 评论 -
设计模式 一 工厂模式(The Factory Pattern)
工厂模式有三种:简单工厂(simple factory)、工厂方法(factory method)、抽象工厂(abstract factory)。一、简单工厂(simple factory) 1、simple factory 模式的工厂类根据提供给他的参数,返回几个可能产品类中的一个类的实例。通常它返回的类都有一个公共的父类和公共的方法。 2、simpl原创 2012-03-09 11:45:58 · 743 阅读 · 0 评论 -
设计模式(命令模式)-----行为型模式
命令模式也是开发中常见的一个模式,也不是太难,比较简单,下面来详细的写一下命令模式。 模式优点 1.降低系统的耦合度。 2.新的命令可以很容易地加入到系统中。 3.可以比较容易地设计一个组合命令。模式缺点 使用命令模式可能会导致某些系统有过多的具体命令类。因为针对每一个命令都需要设计一个具体命令类,因此某些系统可能需要大量具体转载 2012-03-26 11:36:13 · 441 阅读 · 0 评论 -
设计模式 一 适配器模式 Adapter(结构型模式)
<?php/** * 设计模式 一 适配器模式 Adapter(结构型模式) * * 定义: * 1、将一个接口转换成为客户想要的另一个接口 * 2、使接口不兼容的那些类可以一起工作。*//** * 模式结构 * 1、目标抽象类(Target) 定义客户要用的特定领域的接口。 * 2、适配器(Adapter) 调用另一个接口,作为一个转换器。 * 3、被适配器(Adap原创 2012-04-19 10:33:00 · 631 阅读 · 0 评论