2016-10-13 曹强
php
简介 根据目的和范围,设计模式可以分为五类。按照目的分为:创建设计模式,结构设计模式,以及行为设计模式。按照范围分为:类的设计模式,以及对象设计模式。下面分别介绍 。 创建设计模式 创建设计模式(Creational patterns),用于创建对象时的设计模式。更具体一点,初始化对象流程的设计模式。当程序日益复杂时,需要更加灵活地创建对象,同时减少创建时的依赖。而创建设计模式就是解决此问题的一类设计模式。 结构设计模式 结构设计模式(Structural patterns),用于继承和接口时的设计模式。结构设计模式用于新类的函数方法设计,减少不必要的类定义,减少代码的冗余。 行为设计模式 行为设计模式(Behavio 继续阅读 »
2016-10-13 曹强
php
原文地址:[PHP设计模式(三):封装][1] 简介 面向对象编程中,一切都是对象,对一个对象的封装,也成了面向对象编程中必不可少的部分。 和C/C++,Java,Python等语言一样,PHP也支持封装。 封装/Encapsulation 对事物的封装是指,将事物进行抽象后,提供抽象概念的实现的具体方法。 听起来很拗口,还是举鲸鱼的例子。 对于鲸鱼来说,需要吃东西这个行为,吃本身是一个抽象的概念,因为具体到怎么吃,是咀嚼和消化的过程,甚至如何咀嚼和消化也是不可见的。对外部而言,可见的只是吃这一个接口,如何吃、怎么吃,是被封装在了鲸鱼的实现中。甚至可以说,消化系统,被封装到了鲸鱼这个对象中,对外部不可见,仅仅鲸鱼自 继续阅读 »
2016-10-13 曹强
php
简介 在[PHP设计模式(七):设计模式分类][2]中我们提到过创建设计模式(Creation patterns),创建设计模式专注于设计对象(Object)和实例(Instance)的创建过程。 创建设计模式包括下面五种设计模式: 抽象工厂设计模式(Abstract Factory) 生成器模式(Builder) 工厂设计模式(Factory Method) 原型设计模式(Prototype Method) 单例设计模式(Singleton) 当程序逐渐扩展的时候,需要更多的新对象,新对象的创建不应该依赖于创建者,换句话说,新对象的创建过程,不应该依赖调用创建函数的对象。为了减少冗余,增加拓展性,工厂模式就是一种 继续阅读 »
2016-10-13 曹强
php
简介 在[PHP设计模式(七):设计模式分类][2]中我们提到过结构设计模式(Structural patterns),结构设计模式专注于设计对象(Object)和实例(Instance)的构建、组合过程。 结构设计模式包括下面七种设计模式: 适配器(Adapter) 桥接(Bridge) 合成(Composite) 装饰(Decorator) 外部(Facade) 轻量(Flyweight) 代理(Proxy) 请无视拗口的中文翻译。结构设计模式着重于低耦合、高复用、高可维护性、高拓展性的设计原则。 适配器模式 适配器模式是一种利用适配器将现有的实现,适配到已有接口的设计模式,最常见的例子就是变压器,将已 继续阅读 »
2016-10-13 曹强
php
简介 俗话说,“PHP是世界上最好的语言”,因为PHP什么都能干。但是在PHP编程中,你是否会遇到这样的困惑:明明是相同的需求,但是之前写的代码却并不能重用,稍微修改不满足需求,大改又会让页面变样。 是的,由于PHP什么都能干,但是高度灵活性降低了代码的结构性。虽然可以利用三方框架来解决问题,但问题的根本在于缺乏设计模式。 本系列文章将由浅入深的介绍各种设计模式。 面向对象编程 面向对象编程,Object-Oriented Programming(OOP)作为最基本的设计模式并不是什么新鲜的话题,但是大部分新手的PHP编程都是在写流水账,各种拼接字符串,所以这里还是要提一下。 Object-Oriented Pro 继续阅读 »
2018-05-03 Vaniot
在实现功能模块通常需要使用另外一个(或多个)组件(无法被当前使用者修改的功能模块)或服务(使用者通过同步或者异步请求的功能接口),依赖注入通过构造注入,允许代码从硬编码的依赖中解耦,使得在运行时或编译时可以修改的软件设计模式。 ps:组件在本地,服务在远程 more 依赖注入的两种方式 ```php namespace database; class Database { protected $adapter; /未使用依赖注入时,产生紧密的耦合/ public function __construct() { $this-adapter=new MysqlAdapter; 继续阅读 »
2015-04-26 derekchan
这两个星期,朋友结婚、公司活动、任务、岗位线座谈会,忙得不可开交,趁着周末,让自己闲下来写篇博文。回想起我在看设计模式的时候,经常看到书上经常会用到静态类和接口,但却不了解抽象类和接口的区别,俗话说,不了解透彻就无法运用到实际场景上(PS:这俗话当然是我自己编的~_~),那它们两者的区别在哪呢? 继续阅读 »