guisu,程序人生。 逆水行舟,不进则退。

能干的人解决问题。智慧的人绕开问题(A clever person solves a problem. A wise person avoids it)...

重构-改善既有代码的设计:简化条件表达式(七)

简化条件表达式 1.Decompose Conditional 分解条件表达式 你有一个复杂的条件语句。从if、then、else三个段落中分别提炼出独立函数。 程序之中,复杂的条件逻辑是最常导致复杂度上升的地点之一。你必须编写代码来检查不同的条件分支、根据不同的分支做不同的...

2012-05-29 20:11:05

阅读数:5179

评论数:1

重构-改善既有代码的设计:重新组织数据的16种方法(六)

重新组织数据: 1.Self Encapsulate Field 自封装字段 间接访问类的属性:你直接访问一个字段,但与字段之间的耦合关系逐渐变得笨拙。为这个字段建立取值/设值函数,并且只以这些函数来访问字段。        间接访问变量的好处是,子类可以通过覆写一个函数...

2012-05-29 16:16:42

阅读数:4581

评论数:3

重构-改善既有代码的设计:对象之间移动特性的八种方法(五)

在面向对象编程过程中,明确该对象的职责。类应该是:做自己该做的事,应尽该尽的义务, 1.Move Method 移动函数 类的行为做到单一职责 不要越俎代庖: 你的程序中,有个函数与其所驻类之外的另一个类进行更多的交流:调用后者,或被后者调用。在该函数最常用引用的类中建立一个有着类似行...

2012-05-25 15:54:25

阅读数:3781

评论数:1

重构-改善既有代码的设计:重新组织函数的九种方法(四)

函数过长或者逻辑太混乱,重新组织和整理函数的代码,使之更合理进行封装。 1. Extract Method 提炼函数 提炼函数:(由复杂的函数提炼出独立的函数或者说大函数分解成由小函数组成)你有一段代码可以被组织在一起并独立出来。将这段代码放进一个独立函数,并让函数名称解释该函...

2012-05-24 17:18:52

阅读数:6129

评论数:5

重构-改善既有代码的设计:编写代码22宗罪(三)

1 Duplicated  Code重复代码        不同的地方出现相同的程序结构:         如果你在一个以上的地点看到相同的程序结构,那么可以肯定:设法将它们和而为一,程序会变得更好。最常见的“重复代码”就是一个类内的两个函数含有相同的表达式。另一种常见情况就是两个互为兄弟...

2012-05-24 11:01:12

阅读数:6056

评论数:4

重构-改善既有代码的设计:重构原则(二)

1.什么是重构 重构(Refactoring):在不改变软件的功能和外部可见性的情况下,为了改善软件的结构,提高清晰性、可扩展性和可重用性而对软件进行的改造,对代码内部的结构进行优化。 2.为何重构   1)改进软件设计(整理代码) 重构和设计是相辅相成的,它和设计彼此互补...

2012-05-22 15:42:04

阅读数:11215

评论数:5

AOP与OOP

面向对象的编程(OOP)方法是在面向过程的编程方法基础上进行的改进,而面向方面编程(AOP)方法又是在面向对象编程(OOP)方法的基础上进行改进而来的一种创新的软件开发方法。 1.面向领域不同           AOP和OOP虽然在字面上十分相似,但是却是面向不同领域的两种设计...

2012-05-22 10:51:26

阅读数:4018

评论数:5

AOP面向方面编程

1.引言         软件开发的目标是要对世界的部分元素或者信息流建立模型,实现软件系统的工程需要将系统分解成可以创建和管理的模块。于是出现了以系统模块化特性的面向对象程序设计技术。模块化的面向对象编程极度极地提高了软件系统的可读性、复用性和可扩展性。向对象方法的焦点在于选择对象作为...

2012-05-21 11:37:02

阅读数:22213

评论数:9

每个程序员都该知道的10大编程格言

每个程序员都该知道的10大编程格言(Kevin Pang): 编程格言1:无风不起浪 (There is no smoke without fire) 编程格言2:预防为主,治疗为辅(An ounce of prevention is worth a p...

2012-05-17 18:28:51

阅读数:11007

评论数:3

设计模式原则详解

我们在应用程序开发中,一般要求尽量两做到可维护性和可复用性。        应用程序的复用可以提高应用程序的开发效率和质量,节约开发成本,恰当的复用还可以改善系统的可维护性。而在面向对象的设计里面,可维护性复用都是以面向对象设计原则为基础的,这些设计原则首先都是复用的原则,遵循这些设计原则可以有...

2012-05-17 10:39:21

阅读数:28692

评论数:10

php 设计模式-数据映射模式(应用程序与数据库交互模式)

前面提到的设计模式大大提高了代码的可读性与可维护性。然而,在WEB应用设计与开发中一个基本的需求与挑战:数据库应用,这些设计模式都没有涉及到。数据映射模式使您能更好的组织你的应用程序与数据库进行交互。 下面我将用实际代码说明,如果一个表发生变动。我们要修改客户端代码就可以了。特别是游...

2012-05-15 18:51:18

阅读数:9378

评论数:3

Gof《设计模式》完结

设计模式一到二十都是Gof《设计模式》内容的总结,并使用php说明实现,Gof《设计模式》提到的代码都是c++。举例也不是特别典型。这些内容很早之前都已经总结了,现在重新把word笔记整理,算是温故而知新吧。一些地方描述可能有误,在往后的更多实践经验来进一步的修改。       目前我在开发项目...

2012-05-14 16:56:51

阅读数:6629

评论数:1

设计模式 ( 二十 ) 访问者模式Visitor(对象行为型)

特此说明:对访问者模式理解不是特别透彻,若有误,请指正,谢谢! 1.概述 在软件开发过程中,对于系统中的某些对象,它们存储在同一个集合collection中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有所不同。 例子1:顾...

2012-05-14 16:00:29

阅读数:12837

评论数:1

设计模式 ( 十九 ) 模板方法模式Template method(类行为型)

设计模式 ( 十九 ) 模板方法模式Template method(类行为型) 1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序。但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关。 例...

2012-05-14 13:15:16

阅读数:28810

评论数:4

设计模式 ( 十八 ) 策略模式Strategy(对象行为型)

设计模式 ( 十八 ) 策略模式Strategy(对象行为型) 1.概述         在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类...

2012-05-12 15:50:25

阅读数:211330

评论数:50

设计模式 ( 十七) 状态模式State(对象行为型)

设计模式 ( 十七) 状态模式State(对象行为型) 1.概述 在软件开发过程中,应用程序可能会根据不同的情况作出不同的处理。最直接的解决方案是将这些所有可能发生的情况全都考虑到。然后使用if... ellse语句来做状态判断来进行不同情况的处理。但是对复杂状态的判断就显得“力不...

2012-05-11 17:26:22

阅读数:87535

评论数:29

设计模式 ( 十六 ) 观察者模式Observer(对象行为型)

设计模式 ( 十五 ) 观察者模式Observer(对象行为型) 1.概述 一些面向对象的编程方式,提供了一种构建对象间复杂网络互连的能力。当对象们连接在一起时,它们就可以相互提供服务和信息。 通常来说,当某个对象的状态发生改变时,你仍然需要对象之间能互相通信。但是出于各种原因,...

2012-05-11 11:58:24

阅读数:26649

评论数:4

设计模式 ( 十五 ) 中介者模式Mediator(对象行为型)

设计模式 ( 十五 ) 中介者模式Mediator(对象行为型) 1.概述 在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责,即将行为分布到各个对象中。 对于一个模块或者系统,可能由很多对象构成,而且这些对象之间可...

2012-05-10 17:40:11

阅读数:8965

评论数:3

设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)

1.概述 类中的面向对象编程封装应用逻辑。类,就是实例化的对象,每个单独的对象都有一个特定的身份和状态。单独的对象是一种组织代码的有用方法,但通常你会处理一组对象或者集合。 集合不一定是均一的。图形用户界面框架中的 Window 对象可以收集任意数量的控制对象 - Menu、Slider ...

2012-05-10 13:14:04

阅读数:8499

评论数:3

设计模式 ( 十三 ) 命令模式Command(对象行为型)

设计模式 ( 十三 ) 命令模式Command(对象行为型) 1.概述         在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求发...

2012-05-09 16:31:35

阅读数:23194

评论数:2

提示
确定要删除当前文章?
取消 删除
关闭
关闭