- 博客(34)
- 收藏
- 关注
转载 设计模式之创建型模式
工厂方法模式:提供一个简单的决策类,根据条件生成产品。抽象工厂模式:提供一个创建并返回一系列产品的接口。单件模式:某个类只能有一个实例。提供一个全局访问点。(可拓展到有限个实例)生成器模式:将一个复杂对象的构建于呈现分开,以便根据不同需要创建不同的形式。原型模式:先实例化一个类,然后克隆或者拷贝该类来构建新的实例。可以用共有方法进一步修改这些实例。难点:抽象工厂模式与生成器模式
2012-03-31 17:39:08 652
原创 设计模式 一 创建者模式 Builder(生成器)
<?php/** * 设计模式 一 创建者模式 Builder(生成器) * 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化, * 这个复杂对象的各个部分子对象经常面临着剧烈的变化,但是将它们组合在一起的算法绝对的稳定。 * 如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳
2012-03-31 15:43:19 636
原创 设计模式 一 抽象工厂Abstract Factory(工厂模式)
<?php/** * 原料家族 * * 随着比萨店加盟店越来越多,有些加盟店为了提高利润,从而降低了原料的质量,所有总店必须采取一些措施,避免损害公司形象的品牌。 *//** * 措施:保持原料一致 * 问题1:如何确保原料一致,打算建造一家生产原料的工厂,并送到各家加盟店。 * 问题2:各个加盟店坐落在不同的区域,纽约的红酱料和芝加哥的红酱料是不一样的。 * 所有让我们准备
2012-03-30 14:17:21 597
原创 设计模式 一 工厂方法Factory Method(工厂模式)
<?php/** * 工厂方法模式演变 * * 比萨加盟店 * 背景:随着比萨店的发展,有更多人想成为比萨加盟店。 *//** * 每家加盟店都可能想要提供不同风味的比萨(比方说纽约、芝加哥、加州),这受到了开店地点影响。 *//** * 我们已经有一个做法。。。 * 如果利用SimpleFactory,写出三种不同的工厂,分别为NYPizzaFactory、Chi
2012-03-29 15:17:01 772
原创 设计模式 一 简单工厂Simple Factory(工厂模式)
<?php/** * 简单工厂的演变 */ /** * 引导 * * 1、当看到 “new”, 就会想到具体。导致代码更脆弱更缺乏弹性。,使用接口让代码具有弹性。 * 2、针对接口编程,可以隔离掉以后系统可能发生的一大堆改变。why?如果代码是针对接口而写,那么通过多态,它可以与任何新类实现该接口。 * 但是,当代码使用大量的具体类时,等于是自找麻烦,因为一旦加入新的
2012-03-29 10:20:47 631
转载 详解继承与组合的优缺点
组合与继承都是提高代码可重用性的手段。在设计对象模型时,可以按照语义来识别类之间的组合关系和继承关系。在有些情况下,采用组合关系或者继承关系能完成同样的任务,组合和继承存在着对应关系:组合中的整体类和继承中的子类对应,组合中的局部类和继承中的父类对应,如下图:组合:继承:一、基础知识我们先用代码帮大家来理解一下组合和继承:1、对于已经存在
2012-03-27 17:40:01 11736 1
原创 面向对象编程有三个特性:封装,继承,多态。
面向对象编程有三个特性:封装,继承,多态。这三个特性从低级到高级描述了面向对象的特征。一种语言只有同时具备这三种特性才能被称为面向对象的语言。VB中也有类,它的类也支持封装和简单的继承,但是它不支持所有的继承语义和多态,因此VB只能被称为基于对象的语言。一、封装 封装是所有抽象数据类型(ADT)的特性,很多刚刚接触面向对象的人认为封装就是就是面向对象。
2012-03-27 16:07:32 4130
原创 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 895
转载 设计模式(命令模式)-----行为型模式
命令模式也是开发中常见的一个模式,也不是太难,比较简单,下面来详细的写一下命令模式。 模式优点 1.降低系统的耦合度。 2.新的命令可以很容易地加入到系统中。 3.可以比较容易地设计一个组合命令。模式缺点 使用命令模式可能会导致某些系统有过多的具体命令类。因为针对每一个命令都需要设计一个具体命令类,因此某些系统可能需要大量具体
2012-03-26 11:36:13 421
转载 设计模式(迭代器模式)----- 行为型模式
行为型模式概述: 迭代器模式(Iterator):提供一种方法顺序一个聚合对象中各个元素,而又不暴露该对象内部表示。实用场合:
2012-03-20 11:01:31 787
转载 设计模式(策略模式2)
3 模式讲解3.1 认识策略模式(1)策略模式的功能 策略模式的功能是把具体的算法实现,从具体的业务处理里面独立出来,把它们实现成为单独的算法类,从而形成一系列的算法,并让这些算法可以相互替换。 策略模式的重心不是如何来实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活、具有更好的维护性和扩展性。(2)策略模式和if-else语句
2012-03-19 14:23:15 460
转载 设计模式(策略模式)
首先感谢众多朋友的支持、评论和鼓励,只有多多努力,写点好的博文来回报大家的好意! 接下来想写写另外一个虽然较简单,但是使用很频繁的模式——策略模式策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。行为型模式策
2012-03-19 14:12:15 472
原创 设计模式(伪对象模式)
伪对象是对象在测试中的一个替代品,用它测试代码更加简便。例如,替代一个真实的数据连接——这个真实的数据连接由于一些原因而不能实际连接——你就可以创建一个伪对象来模拟。这意味着伪对象需要准确地回应代码中所调用的相同的应用程序接口。 面向对象的编程之所以丰富多彩,部分是由于对象间的相互联系与作用。一个单一的对象就能封装一个复杂的子系统,
2012-03-16 15:04:39 389
原创 http://www.uml.org.cn 学习
2012.3.151、数据库 数据库基础 数据库设计范式深入浅出 http://www.uml.org.cn/sjjm/200511222.htm2、OO基础 OO系统设计师之路--分析模型 http://www.uml.org.cn/mxdx/200905041.asp2012.3.19 1、数据库
2012-03-15 15:28:37 1137
转载 浅谈数据库设计技巧
说到数据库,我认为不能不先谈数据结构。1996年,在我初入大学学习计算机编程时,当时的老师就告诉我们说:计算机程序=数据结构+算法。尽管现在的程序开发已由面向过程为主逐步过渡到面向对象为主,但我还是深深赞同8年前老师的告诉我们的公式:计算机程序=数据结构+算法。 面向对象的程序开发,要做的第一件事就是,先分析整个程序中需处理的数据,从中提取出抽象模板,以这个抽象模板设计类,再在其中逐步添加处理其数
2012-03-15 14:21:39 464
转载 数据库模型设计连载之(人与组织 )
原文地址 :http://blog.csdn.net/liu7537/article/details/713973五、通用数据库模型分析在我们数据库模型设计领域,有一个很有趣的比例——“5:3:2”,我称之为“五三二法则”。具体是什么含义呢?这个“5”,表示大约50%的功能设计是跨行业通用的,不管你是做商业流通项目、还是电子政务项目、或者是网上拍卖系统,虽然各个项目所属行业
2012-03-15 13:18:13 712
转载 设计模式--注册模式
注册表的作用是提供系统级别的对象访问功能。有的同学会说,这样是多此一举,不过小项目中的确没有必要对类进行注册,如果是大项目,还是非常有用的。<?php //基础类 class webSite {//一个非常简单的基础类 private $siteName; private $siteUrl; function __construct($siteName,$
2012-03-15 11:21:57 1289
原创 中奖概率算法
* 中奖概率算法 中奖几率 : 10%, 20%, 30%,....100% function isReward($chance) { return rand(1, 10) }rand(1, 100) 2% 的概率divisor 除数; 分水设备; 因子probabi
2012-03-15 11:01:25 4630
转载 数据库模型设计连载之(自联结模式 )
原文地址:http://blog.csdn.net/liu7537/article/details/661961(二)自联结模式自联结模式,也可以看作是“主从模式”的一种特殊情况(或者说是“变形”),它在一张表内实现了“一对多关系”,并且可以根据业务需要实现“有限层”或者“无限层”的主从嵌套。这种模式用得最多的情况就是实现“树形结构”数据的存储,比如各大网站上常见的细分类别、应用系
2012-03-14 17:37:35 525
转载 数据库模型设计连载之(继承模式 )
原文地址:http://blog.csdn.net/liu7537/article/details/661838数据库物理模型设计的其他模式除了上面提到的四种主要设计模式,还有一些其他模式,在某些项目中可能会用到,在这里先简单做个说明,暂不做深入讨论,等到以后的项目用到这些模式的时候,再结合实际需求详细解说。(一)继承模式继承模式,可以看作是“主从模式”的一种特殊情
2012-03-14 17:31:24 804
转载 数据库模型设计连载(一般常见)
原文:http://blog.csdn.net/liu7537/article/details/657207 最近一直有个愿望:希望把自己所从事的数据库模型设计方面的工作经验和想法付诸文字,算是对此前工作的一个总结,今天终于开始了万里长征的第一步。 在正式开始之前,我先向大家介绍两本书——《数据模型资源手册卷一》、《数据模型资源手册卷二》,国内有机械工业
2012-03-14 17:03:04 2180
原创 数据库设计的5种常见关系
数据库设计多对多关系的几种形态前言:多对多关系至少需要3个表,我们把一个表叫做主表,一个叫做关系表,另外一个叫做字典表或者副表(字典表是纪录比较少,而且基本稳定的,例如:版块名称;副表是内容比较多,内容变化的,例如)。 按照数据库的增删查改操作,多对多关系的查找都可以用inner join或者select * from 主表 where id in (select 主表id from
2012-03-14 13:26:36 1019
转载 类图中的关联类
https://docs.google.com/open?id=0B-aNSlaQ-ClzdjVFeUJLaU1Td3lteTNLV1pDUTgxdw点击打开链接
2012-03-13 17:41:56 1014
转载 类与类关系的UML图与代码表现
原文地址 :http://www.uml.org.cn/oobject/200812191.asp这是一堂关于UML基础知识的补习课;现在我们做项目时间都太紧了,基本上都没有做过真正的class级别的详细设计,更别提使用UML来实现规范建模了;本篇主要就以前自己一直感觉很迷糊的几种class之间的关系进行整理,让我们在真正用UML进行比如类图设计时能够更加清晰明了;以下就分别介绍这
2012-03-13 17:04:15 435
转载 面向对象设计原则-依赖倒置原则02
定义:抽象不应该依赖于细节。细节应该依赖于抽象。程序中所有的依赖关系都应该终止于抽象类和接口。针对接口而非实现编程。任何变量都不应该持有一个指向具体类的指针或引用。任何类都不应该从具体类派生。任何方法都不应该覆写他的任何基类中的已经实现了的方法。 说通俗一点就是,你抽象了一个类,这个类在这个工程中可以用,如果再做一个工程,移植过来还能用。遵循这一目的是为了代码的复用。不过这一条规则我觉得
2012-03-13 16:33:01 336
转载 面向对象设计原则-依赖倒置原则01
面向对象设计原则之四:依赖倒置原则依赖倒置原则 所谓依赖倒置原则(Dependence Inversion Principle )就是要依赖于抽象,不要依赖于具体。简单的说就是对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。 面向过程的开发,上层调用下层,上层依赖于下层,当下层剧烈变化时,上层也要跟着变化,这就会导致模块的复用性降低而且大大提
2012-03-13 16:18:31 425
原创 设计模式 一 单例模式Singleton
/** * 单例模式,顾名思义强调的是单一,只有一个实例,而且自行实例化并向整个系统提供这个实例。 * * 创建型模式 * 条件3点 * 1、需要一个静态变量,保存类的唯一实例。 * 2、需要一个公共静态方法,返回唯一实例的一个引用。 * 3、构造函数(__construct)、克隆函数(__clone)私有化,从而防止外部程序 new 类,从而失去单例模式的意义。 * * 优点
2012-03-13 10:47:00 1053
原创 设计模式 一 工厂模式(The Factory Pattern)
工厂模式有三种:简单工厂(simple factory)、工厂方法(factory method)、抽象工厂(abstract factory)。一、简单工厂(simple factory) 1、simple factory 模式的工厂类根据提供给他的参数,返回几个可能产品类中的一个类的实例。通常它返回的类都有一个公共的父类和公共的方法。 2、simpl
2012-03-09 11:45:58 677
转载 设计模式 一 值对象模式(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 1766
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人