随笔 - 168  文章 - 1  评论 - 1  阅读 - 19万
02 2018 档案
中介者模式
摘要:中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 阅读全文
posted @ 2018-02-28 14:49 paulversion 阅读(129) 评论(0) 推荐(0) 编辑
职责链模式
摘要:职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 <?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/2/2 阅读全文
posted @ 2018-02-28 11:59 paulversion 阅读(118) 评论(0) 推荐(0) 编辑
命令模式
摘要:命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作. 在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来 阅读全文
posted @ 2018-02-28 11:11 paulversion 阅读(145) 评论(0) 推荐(0) 编辑
桥接模式
摘要:桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立的变化. 阅读全文
posted @ 2018-02-28 10:53 paulversion 阅读(149) 评论(0) 推荐(0) 编辑
合成/聚合复用原则
摘要:合成和聚合都是关联的特殊种类.聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分;合成则是一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样. 比如说,大雁有两个翅膀,翅膀与大雁是部分和整体的关系,并且它们的生命周期是相同的,于是大雁和翅膀就是合 阅读全文
posted @ 2018-02-28 10:27 paulversion 阅读(922) 评论(0) 推荐(1) 编辑
单例模式
摘要:单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 阅读全文
posted @ 2018-02-27 11:33 paulversion 阅读(125) 评论(0) 推荐(0) 编辑
迭代器模式
摘要:迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示. 1.访问一个聚合对象的内容而无需暴露它的内部表示 2.支持对聚合对象的多种遍历 3.为遍历不同的聚合结构提供一个统一的接口 阅读全文
posted @ 2018-02-27 11:10 paulversion 阅读(103) 评论(0) 推荐(0) 编辑
适配器模式
摘要:适配器模式:将一个类的接口转换成客户希望的另外一个接口,适配器模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。 系统的数据和行为都正确,单接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求 阅读全文
posted @ 2018-02-09 15:19 paulversion 阅读(120) 评论(0) 推荐(0) 编辑
状态模式
摘要:状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。(当类中的方法含有多个判断时使用如果状态判断很简单那就没必要用状态模式 阅读全文
posted @ 2018-02-09 11:21 paulversion 阅读(156) 评论(0) 推荐(0) 编辑
抽象工厂模式
摘要:抽象工厂模式:提供创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 阅读全文
posted @ 2018-02-08 16:37 paulversion 阅读(197) 评论(0) 推荐(0) 编辑
观察者模式(发布-订阅模式)
摘要:观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状态发生变化时会通知所有观察者的对象,使它们能够自动更新自己。 阅读全文
posted @ 2018-02-08 14:27 paulversion 阅读(166) 评论(0) 推荐(0) 编辑
建造者模式(生成器模式)
摘要:建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构造过程可以创建不同的表示。如果我们用了建造者模式,那么用户就只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需知道了. 阅读全文
posted @ 2018-02-08 11:24 paulversion 阅读(172) 评论(0) 推荐(0) 编辑
外观模式
摘要:外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子类系统更加容易使用。class Stock1{ public function sell(){ echo '卖股票1'; } public function buy(){ echo '买股票1'; }} class Stock2{ publ... 阅读全文
posted @ 2018-02-08 10:34 paulversion 阅读(100) 评论(0) 推荐(0) 编辑
迪米特法则
摘要:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某个方法的话,可以通过第三者转发这个调用。(强调松耦合)。 迪米特法则首先强调的前提是在类的结构设计上,每一个类都应当尽量降低成员的访问权限。也就是说,一个类包装好自己的private状态,不需要让别 阅读全文
posted @ 2018-02-07 17:29 paulversion 阅读(98) 评论(0) 推荐(0) 编辑
模板模式
摘要:当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理 阅读全文
posted @ 2018-02-07 17:14 paulversion 阅读(106) 评论(0) 推荐(0) 编辑
代理模式
摘要:代理模式:为其他对象提供一种代理以控制对这个对象的访问interface GiveGift{ function giveDolls(); function giveFlowers(); function giveChocolate();} class Pretty{ public $name; pu 阅读全文
posted @ 2018-02-07 15:02 paulversion 阅读(95) 评论(0) 推荐(0) 编辑
装饰模式
摘要:装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 阅读全文
posted @ 2018-02-06 18:30 paulversion 阅读(144) 评论(0) 推荐(0) 编辑
依赖倒转原则
摘要:依赖倒置原则:针对接口编程,不要对实现编程。高层模块不应该依赖底层模块,两个都应该依赖抽象(都依赖于接口)。抽象不应该依赖细节,细节应该依赖抽象. 依赖倒转其实可以说是面向对象设计的标志,用哪种语言来编写程序不重要,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终 阅读全文
posted @ 2018-02-06 17:38 paulversion 阅读(119) 评论(0) 推荐(0) 编辑
里氏代换原则
摘要:里氏代换原则:一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化。(向上转型) 阅读全文
posted @ 2018-02-06 17:31 paulversion 阅读(130) 评论(0) 推荐(0) 编辑
开放-封闭原则
摘要:开放-封闭原则:是说软件实体(类,模块,函数)应该可以扩展,但是不可修改。这个原则有两个特征,一个是说对于扩展是开放的,另一个是说对于更改是封闭的。 开放-封闭原则是面向对象设计的核心所在。遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护,可扩展,可复用,灵活性好。开发人员应该仅对程序 阅读全文
posted @ 2018-02-06 16:50 paulversion 阅读(137) 评论(0) 推荐(0) 编辑
单一职责原则
摘要:单一职责(SRP):就一个类而言,应该仅有一个引起它变化的原因或者说一个类只有一个职责。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会消弱或抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破坏 阅读全文
posted @ 2018-02-06 15:04 paulversion 阅读(103) 评论(0) 推荐(0) 编辑
php 策略模式
摘要:策略模式定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户,(策略模式将完成相同的功能的方法分别封装不同的类中,然后在一个类中封装这些不同的类) 阅读全文
posted @ 2018-02-06 14:33 paulversion 阅读(309) 评论(0) 推荐(0) 编辑
php 工厂方法模式
摘要:#使用工厂方法模式是不知道要创建类的对象有哪些.interface IFactory{ public function CreateOperation();#工厂方法模式只有单个产品} class Operation extends Model{ private $numberA; private 阅读全文
posted @ 2018-02-05 18:22 paulversion 阅读(180) 评论(0) 推荐(0) 编辑
php简单工厂模式
摘要:工厂类中有一个创建对象的方法,根据传入参数的不同来生成不同的对象 class Operation extends Model{ private $numberA; private $numberB; public function getResult(){ $result = 0; return $ 阅读全文
posted @ 2018-02-05 16:38 paulversion 阅读(143) 评论(0) 推荐(0) 编辑
设计模式的分类
摘要:创建型模式: 工厂方法模式抽象工厂模式单例模式建造者模式原型模式 结构型模式: 适配器模式桥接模式合成模式装饰器模式门面模式代理模式享元模式 行为型模式: 策略模式模板方法模式观察者模式迭代器模式责任链模式命令模式备忘录模式状态模式访问者模式中介者模式解释器模式 阅读全文
posted @ 2018-02-05 16:05 paulversion 阅读(83) 评论(0) 推荐(0) 编辑
python scrapy
摘要:scrapy的安装 pip install Scrapy scrapy 常用命令 scrapy提供了两种类型的命令。一种必须在Scrapy项目中运行,是针对项目的命令;另外一种则不需要,属于全局命令 全局命令: startproject 用法 scrapy startproject <project 阅读全文
posted @ 2018-02-02 16:41 paulversion 阅读(158) 评论(0) 推荐(0) 编辑
Python selenium
摘要:利用pip安装selenium 命令pip install selenium 我们用selenium写个小例子,功能是打开百度主页,在搜索框中输入网络爬虫,进行搜索。代码如下 #coding:utf-8from selenium import webdriverfrom selenium.webdr 阅读全文
posted @ 2018-02-02 11:21 paulversion 阅读(182) 评论(0) 推荐(0) 编辑
phantom的使用
摘要:phantom页面加载 通过Phantomjs,一个网页可以被加载、分析和通过创建网页对象呈现,访问我的博客园地址:http://www.cnblogs.com/paulversion/p/8393842.html,并将当前页面进行截图保存。pageload.js代码如下: var page = r 阅读全文
posted @ 2018-02-01 11:54 paulversion 阅读(310) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示