设计模式
大仙带你飞
活到老,学到老!
展开
-
设计模式-代理模式
一、什么是代理模式 Proxy模式又叫做代理模式,是是结构型设计模式之一,它可以为其它对象提供一种代理(Proxy)以控制对这个对象的访问。所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互过程中(交互前后),进行某种特别的处理。 简单的说,代理模式就像一种中介。举个例子,本来自己买车,则需要自己找车源,还有一系列检查过程,特别...原创 2020-01-24 10:53:42 · 283 阅读 · 0 评论 -
设计模式-装饰器模式
我们都知道,得到一匹布需要大概这么几步: 1、染色 2、印花 3、裁剪 这种形式在面向对象中怎么实现呢? 面向过程【继承模式】实现: 继承模式得到需要的布料,一步一步的加工。 继承的层次越来越深,扩展性差。如果中间加道其他程序,就有些吃力了。 <?php header("content-type:text/html;ch...原创 2020-01-08 12:14:07 · 100 阅读 · 0 评论 -
设计模式-策略模式
策略模式 简单理解就是 有n个做法供你选择,根据你的需要选择某个策略得到结果 就应用场景来说: 例1:比如购买商品需要支付,你可以提供 微信支付、支付宝支付、支付通支付。。。。(不同的支付方式就是不同的策略) 例2:购物车对产品的计价,如非vip 按原价计算 、vip按8折计算、有推广积分的可以用100积分抵20块。。。(不同的客户条件计价算法有所不同,只是这里的策略选择是根据登录顾客资料来...原创 2020-01-08 11:54:41 · 134 阅读 · 0 评论 -
设计模式-观察者模式
一.观察者模式特点 解释:观察者模式(Observer),当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新。 场景:一个事件发生后,要执行一连串更新操作.传统的编程方式,就是在事件的代码之后直接加入处理逻辑,当更新得逻辑增多之后,代码会变得难以维护.这种方式是耦合的,侵入式的,增加新的逻辑需要改变事件主题的代码,而观察者模式实现了低耦合,非侵入式的通知与更新机制 二...原创 2020-01-08 10:34:28 · 171 阅读 · 0 评论 -
设计模式-适配器模式
一.适配器模式的特点 适配器模式核心思想:把对某些相似的类的操作转化为一个统一的“接口”(这里是比喻的说话)--适配器,或者比喻为一个“界面”,统一或屏蔽了那些类的细节。适配器模式还构造了一种“机制”,使“适配”的类可以很容易的增减,而不用修改与适配器交互的代码,符合“减少代码间耦合”的设计原则。 角色: 目标(Target)角色:定义客户端使用的与特定领域相关的接口,这也就是我们所期待...原创 2020-01-08 09:59:47 · 248 阅读 · 0 评论 -
设计模式-单例模式
一、三私一公: ①、私有静态属性,又来储存生成的唯一对象 ②、私有构造函数 ③、私有克隆函数,防止克隆——clone ④、公共静态方法,用来访问静态属性储存的对象,如果没有对象,则生成此单例 二、关键词instanceof 检查此变量是否为该类的对象、子类、或是实现接口。 1、一个private的__construct是必须的,单例类不能在其它类中实例化,只能被自身实例化; 2、拥有...原创 2020-01-07 22:15:53 · 97 阅读 · 0 评论 -
设计模式-工厂模式
工厂模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 关键思想:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 何时使用:我们明确地计划不同条件下创建不同实例时。 使用场景: 1、日志记录器:记录可能记录到本地硬盘、系统事件、远程服务器...原创 2020-01-07 15:46:38 · 112 阅读 · 0 评论