《PHP设计模式介绍》 导言
当你在不断的试图从你的应用程序中发现新的特征时,你是否发现你提出的解决方法和一些以前你已经实现的东西是如此的类似呢?如果你是一个程序员(即使你才 开始很短的时间),你都可能回答“是”。这看起来就是你使用了一些以前的代码来解决软件开发过程中新发现的问题了。你可能已经认识到:你的解决方法是基本 原理,是一个不仅仅是你而且是所有专业开发者都能广泛重复应用的方法。
事实上,许多程序问题都不断的反复的遇到,而且许多用来解决这些问题的基本方法(或者说是设计模式)都已经浮现出来。设计模式就是一个教你如何利用真实可靠的设计来组织你的代码的模板。
设计模式历史
“设计模式”这个术语最初被设计用于建筑学领域。Christopher Alexander 在他1977的著作“A Pattern Language :Towns/Building/Construction”里面描述了一些常见的建筑学设计问题,并解释了如何用这些已有的,著名的模式集合来开始全新 的有效的设计。Alexander的观点被很好的转化到软件开发上来,并且长期的合意的用原有的组件来构造新的解决方案。 网页教学网
所有的设计模式都有一些常用的特性:一个标识(a name),一个问题陈述(a problem statement)和一个解决方案(a solution)。 Webjx.Com
一个设计模式的标识是重要的,因为它会让其他的程序员不用进行太深入的学习就能立刻理解你的代码的目的(至少通过这个标识程序员会很熟悉这个模式)。
问题描述是用来说明这个模式的应用的领域。?
解决方案描述了这个模型的执行。一个好的设计模式的论述应该覆盖使用这个模型的优点和缺点。
一个模式是解决特定问题的有效方法。一个设计模式不是一个库(能在你的项目中直接包含和使用的代码库)而是一个用来组织你的代码的模板。事实上,一个代码库和一个设计模式在应用上是有很多不同的。
比如,你从店铺里面买的一件衬衫是一个代码库,它的颜色,样式和大小都由设计师和厂商决定,但它满足了你的需求。
然而,如果店里面没有什么衣服适合你,那你就能自己创建自己的衬衫(设计它的形状,选择布料,然后裁缝在一起)。但是如果你不是一个裁缝,你可能会发现自 己很容易的去找一个合适的模式然后按着这个模式去设计自己的衬衫。使用一个模型,你可以在更少的时间内得到一个熟练设计的衬衫。
回到讨论软件上来,一个数据提取层或者一个CMS(content management system)就是一个库——它是先前设计好而且已经编码好了的,如果它能准确的满足你的需要那它就是一个好的选择。但如果你正在读这本书,可能你会发现 库存的(原有的)解决方案并不是总是对你有效。至今你知道什么是你所要的,而且你能够实现它,你仅仅需要一个模型来引导你。
最后一个想法:就象一个裁缝模型,一个设计本身而言是没有什么用处的。毕竟,你不可能穿一个服装模型——它仅仅是由很薄的纸拼凑起来的。类似的,一个软件设计模型也仅仅只是一个引导。它必须根据程序设计语言和你的应用程序的特点和要求而特别的设计。
本书的目标
本书的目的不是为了全面的介绍各种类别的软件设计模式,也不是为了发展一个新的设计模式或者术语,而是为了突出介绍一些已有的著名的设计模式。这本书的 独特之处在于介绍了一些我认为对开发动态WEB应用程序很有帮助的设计模式,而且用PHP语言显示了如何实现这些设计模式。
面对对象编程OOP
这本书一个优点就是所有的观点都是基于OOP这种很自然的设计模式,并且用OOP来实现。
如果你不熟悉OOP,有很多相关的资源(书籍,网站,杂志,上课等等)来帮助你更好的了解它。大多数OOP资料都赞美它的好处——代码重用,代码健壮,代 码封装,多态和可扩展性,当然所有的这些也是非常重要和有用的。然而,我认为OOP最主要的优点是它如何激励你亲手将问题分解成易处理的模块。清晰的设计 和实现,分解成小的模块,这样你的代码能够得到更加彻底的测试而且也更加容易理解和维护。
读者技能要求
这本书假定你已经能够流畅的使用PHP了。特别地,这本书假设你已经了解了PHP和PHP语法的运作知识而且懂得用OOP执行PHP代码的基本原理。这本书不是一本PHP编程的介绍书,也不是为了介绍PHP的OOP编程的。
由于不是所有的OOP开发者都使用相同的术语,当有新的术语被引入时,我都将在正文中或者工具条中定义。
波比源码 » php教程:《PHP设计模式介绍》 导言
buy levofloxacin 500mg generic buy generic levofloxacin
order avodart 0.5mg pills purchase zofran generic oral ondansetron
buy spironolactone 25mg generic oral propecia brand diflucan 200mg
buy ampicillin online cheap buy cephalexin 500mg generic order erythromycin 500mg generic
fildena usa careprost generic methocarbamol order online
buy sildenafil 100mg online cheap order aurogra 100mg generic estrace 2mg
purchase tadalafil generic avanafil 200mg without prescription buy diclofenac 100mg sale
purchase isotretinoin pills amoxicillin pills buy azithromycin 500mg pill
rx pharmacy online cialis tadalafil drug order viagra 50mg generic
buy anastrozole 1mg pills Levitra vs viagra viagra pills
tadalafil 20mg generique en pharmacie sildenafil 100mg generique acheter 200mg gГ©nГ©rique sildenafil en france
purchase prednisone pills buy prednisone 40mg online cheap overnight viagra delivery
tadalafil 20mg ohne rezept sildenafil 100mg generika rezeptfrei kaufen viagra 50mg bestellen
oral isotretinoin 10mg isotretinoin 40mg drug ivermectin 6mg
catapres 0.1 mg generic antivert 25 mg uk spiriva 9 mcg usa
buspar 5mg usa buspirone 5mg us purchase oxybutynin pills
cheap terazosin 1mg terazosin for sale online buy azulfidine pill
alendronate cost brand panadol 500 mg pepcid 20mg tablet
benicar 20mg usa verapamil 240mg without prescription cheap acetazolamide 250 mg
tacrolimus order online order urso 150mg urso 150mg pill
imdur usa micardis 20mg brand generic telmisartan 80mg
bupropion pills buy strattera 25mg for sale seroquel sale
salbutamol canada sildenafil 50mg price viagra australia
tadalafil tablets buy viagra with discover card purchasing viagra on the internet
buy dapsone generic buy fexofenadine generic oral aceon 8mg
order medroxyprogesterone 5mg pill buy microzide 25 mg online cheap periactin 4 mg oral
buy provigil 100mg online cheap generic stromectol 3mg ivermectin where to buy for humans
buy fluvoxamine generic glipizide 5mg sale glucotrol 5mg tablet
brand isotretinoin 20mg isotretinoin online deltasone 10mg cheap
order nootropil 800mg without prescription sildenafil 50mg us sildenafil usa
azithromycin buy online brand gabapentin 800mg purchase gabapentin online
buy cialis 5mg for sale clomipramine 50mg sale anafranil usa
sildenafil online sildenafil 50mg over the counter lisinopril 10mg over the counter
linezolid 600 mg without prescription casino slots real casino slots online
buy omeprazole 20mg online cheap buy prilosec 10mg generic play money poker online
pay to do assignment thesis writer play roulette for free
oral vardenafil 10mg purchase vardenafil sale methylprednisolone 16mg over counter
affordable thesis writing buy a custom essay canadian viagra
cheap clomiphene purchase clomiphene without prescription free online slot machines
buy dapoxetine pills order synthroid pills buy synthroid 150mcg pills
cheap cialis generic generic viagra sildenafil pill
xenical online buy generic acyclovir 800mg order acyclovir 400mg online
oral allopurinol 100mg crestor 10mg generic zetia buy online
brand methotrexate 10mg warfarin 2mg pill metoclopramide 20mg for sale
domperidone 10mg cost cheap tetracycline 250mg buy cyclobenzaprine generic
buy cozaar 50mg generic esomeprazole 40mg drug buy topiramate 100mg generic
baclofen 25mg for sale toradol without prescription toradol buy online
zantac 300mg without prescription buy zantac 150mg pills purchase celecoxib online
online casino for real money slot machine real money spins
order tadalafil 10mg generic order cipro 500mg generic purchase ciprofloxacin for sale
simvastatin 10mg pills proscar pill propecia 5mg ca
cephalexin 500mg without prescription cleocin 300mg usa buy erythromycin online
order generic cialis 40mg sildenafil 50mg canada order viagra 50mg
sildenafil 50mg usa buy viagra 100mg pills order tadalafil 5mg for sale
play slots blackjack online game cialis online buy
buy sildalis pill oral lamictal 50mg lamotrigine brand
online blackjack for money order tadalafil 40mg online buy cialis 40mg for sale
sildenafil drug order tamoxifen 10mg sale oral rhinocort
order deltasone 5mg online order prazosin for sale purchase mebendazole online cheap