![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OOP编程模式设计
文章平均质量分 64
巧妍
生命不息奋斗不息
展开
-
命令模式解析
【意图】将一个请求封装为一个对象,从而使用你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求原创 2013-09-20 11:13:57 · 545 阅读 · 0 评论 -
装饰者模式解析
装饰者模式:类的继承能够让类的结构层次更明了,对于一些属于类个性的方法一般硬编码到子类中。在定程度上在继承的类中硬编码子类共同的方法,但是如果这些共同的方法比较多的话,这样写并不是最理智的方法,而且如果后期扩展的话,父类中的方法会越来越多,且实际使用的方法是子类根据需要选择的,若要实现动态将职责附加到对象上,扩展功能,装饰者提供了比继承更具弹性的代替方案。要点: 1. 装饰者和被装原创 2013-09-17 10:40:36 · 627 阅读 · 0 评论 -
策略模式解析
策略设计模式:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。策略模式可以使算法可独立于使用它的客户而变化抽象策略(Strategy)角色:定义所有支持的算法的公共接口。通常是以一个接口或抽象来实现。Context使用这个接口来调用其ConcreteStrategy定义的算法具体策略(ConcreteStrategy)角色:以Strategy接口实现某具体算法环境(C原创 2013-09-18 10:41:19 · 513 阅读 · 0 评论 -
面向对象软件设计中的开闭原则
what:软件设计过程中对扩展性开放,对修改关闭。即软件实体应该在不修改的前提下扩展,这个原则实际上为软件设计指明了目标。我们知道软件设计应当充分考虑软件的可维护性,即需求发生变化的时候软件结构能够灵活地适应这种变化。就评价软件的可维护性而言,“开—闭”原则提供了一个依据。实际上,设计模式的应用就是使软件的结构在某种程度上满足“开—闭”原则。how:在面向对象设计中,不允许更改原创 2013-09-19 10:47:35 · 801 阅读 · 0 评论 -
访问者模式解析
表示一个作用于某对象结构中的各元素的操作,可以在不改变各元素的类的前提下定义作用于这些元素的新操作/** * 访问者模式 * * 表示一个作用于某对象结构中的各元素的操作,可以在不改变各元素的类的前提下定义作用于这些元素的新操作 * */ abstract class Visitor { abstract public function visitCro原创 2013-09-20 11:33:18 · 539 阅读 · 0 评论 -
组合模式解析
组合模式:将对象以树形结构组织起来,以达成“部分-整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。从定义中可以得到使用组合模式的环境为:在设计中想表示对象的“部分-整体”层次结构;希望用户忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象。组合模式解耦了客户程序与复杂元素内部结构,从而使客户程序可以向处理简单元素一样来处理复杂元素。如果你想要创建层次结构,并原创 2013-09-17 09:14:44 · 519 阅读 · 0 评论 -
单例模式剖析
面向对象编程中有这种情况,希望类只有一个实例且够成其他类的成员属性,这样如果直接作为全局变量在页面的前面定义类的实例,在其他类中当属性使用,这中做法破坏了oop的封装性,并且如果使用不当会导致命名冲突。而单例模式的设计就是专门为了解决这类问题的。顾名思义单例就是单个实例,那么这个类必须有一定的规范:构造方法私有 静态私有属性(本类的实例) 公开的静态方法(该方法为了判断该实例是否原创 2013-09-16 14:35:56 · 502 阅读 · 0 评论 -
观察者模式解析
观察者:定义对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 观察者模式(Observer Pattern)必须包含两个角色:观察者和被观察对象。观察者和被观察者之间存在“观察”的逻辑关联,当被观察者发生改变时,观察者就会观察到变化,并且做出相应的响应。观察者模式完美地将观察者和被观察者的对象分离开。该模式通常是向一个对象添加一个方法使本身原创 2013-09-17 12:32:53 · 653 阅读 · 0 评论 -
外观模式解析
外观模式:外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用;外观模式又称为门面模式,它是一种对象结构型模式。外观模式就是让client客户端以一种简单的方式来调用比较复杂的系统来完成一件事情;目的:1、为一个复杂子系统提供简单的接口2、减少客户端和子系统的耦合原创 2013-09-17 13:09:24 · 541 阅读 · 0 评论 -
注册表模式解析
注册表模式:实际上是单例模式,注册表类提供静态方法(或单例对象的实例化方法)来让其它对象访问其中的数据(通常是对象)。整个系统中的每个对象都可以访问这些数据对象。abstract class Registry { abstract static function get( $key ); abstract static function set( $key, $val原创 2013-09-27 13:22:22 · 743 阅读 · 0 评论