一、什么是简单工厂模式? 简单工厂模式实质是一个工厂类根据传入的参数(产品类继承自同一个工厂类),动态的创建哪个产品类的是实例。 二、简单工厂模式的结构 工厂角色:简单工厂模式的核心,负责创建所有具体产品类的实例,工厂类可以被外界直接调用,创建所需的产品实例。 抽象产品角色:是指具体产品角色的父类, ...
设计模式之适配器模式 Intro 适配器模式(Adapter),将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。也被称为 Wrapper 模式。 通常这个类是外部的类,不能直接修改,所以需要做一层包装,以适配 ...
分类:
其他好文 时间:
2020-07-24 09:32:40
阅读次数:
72
使用情景:系统通知用户,通知方式有站内信,邮件,手机短信3种方式,信的内容分普通,紧急两种程度,为了不避免两两组合,m* n种可能的搭配,使用桥接模式 // 抽象 abstract class Info{ protected $_send = null; // 发送器 (site, email, s ...
分类:
Web程序 时间:
2020-07-24 09:18:59
阅读次数:
95
原型模式 /** * 原型模式 * <p> * 浅复制(浅克隆):将一个对象复制后,基本数据类型的变量都会重新创建,而引用类型,指向的还是原对象所指向的 * 深复制(深克隆):不管是基本数据类型还是引用类型,都会重新创建。简单来说:就是深复制进行了完全彻底的复制 * <p> * 注: * 实现 Cl ...
分类:
编程语言 时间:
2020-07-23 22:30:42
阅读次数:
80
盖房项目需求 需求描述: 需要建造房子:这一过程为:打桩、砌墙、封顶。 房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的。 请编写程序,完成需求。 传统方式解决盖房需求 public abstract class AbstractHouse { public ab ...
分类:
其他好文 时间:
2020-07-23 18:57:37
阅读次数:
87
外观模式(或门面模式、包装模式)是设计模式中非常朴素地体现面向对象“封装”概念的模式,它的基本原理是将复杂的内部实现以统一接口的方式暴露出来,最大程度地减少客户程序对某些子系统内部众多对象的依赖关系。 外观模式在开发过程中运用频率非常高,比如各种第三方SDK大多会使用外观模式。通过一个外观类是的整个 ...
分类:
其他好文 时间:
2020-07-23 09:18:32
阅读次数:
63
/** * 观察对象 * Undocumented class */ class User implements SplSubject { public $loginCnt; private $observers; public function __construct() { $this->obs ...
分类:
Web程序 时间:
2020-07-23 01:49:57
阅读次数:
93
一、背景在企业网站后台系统中,一般会将网站统计单元进行独立设计,比如登录人数的统计、IP数量的计数等。在这类需要完成全局统计的过程中,就会用到单例模式,即整个系统只需要拥有一个计数的全局对象。在网站登录这个高并发场景下,由这个全局对象负责统计当前网站的登录人数、IP等,即节约了网站服务器的资源,又能保证计数的准确性。二、单例模式1、概念单例模式是最常见的设计模式之一,也是整个设计模式中最简单的模式
分类:
其他好文 时间:
2020-07-22 20:18:56
阅读次数:
58
套接字介绍 socket介绍 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 所以,我 ...
分类:
其他好文 时间:
2020-07-22 16:11:31
阅读次数:
70
前言 ? 关于设计模式的文章就到这里了,学习这门多设计模式,你是不是有这样的疑惑,发现很多设计模式很类似,经常会混淆某些设计模式。这章节我们将对设计模式做一个总结,看看各类设计模式有什么区别。需要注意的是,设计模式在于理解,不在于形式。不要为了套用设计模式而使用设计模式,而是,在业务上遇到问题时,很 ...
分类:
编程语言 时间:
2020-07-22 15:45:00
阅读次数:
65