php设计模式课程---9、桥接模式是什么
php设计模式课程---9、桥接模式是什么
一、总结
一句话总结:
一个类没干完,另外一个类接着给它干完
实质是类的拼接,也就是用类的组合代替了类的继承,因为类的组合可以有很多种方式,所以桥接就是类的组合
email类没做完的warn类接着做
sms类没做完的dang类接着做
52 echo $warn->send($email->send('lisi' , '考试了')) , "<br>";
53 echo $dang->send($sms->send('lisi' , '挂科了')) , "<br>";
1、桥接模式实例?
班上的同学按年龄分成了5个类,按照地区分成了8个类,如果继承来做就有5*8=40个类,但是如果桥接的话就只有5+8=13个类。就是年龄类没有做完的交给地区类来做
2、设计模式总纲?
a、变化的部分给它封装成类
b、如果类太多了就把相同的部分抽象出来,解析开,防止类过多
3、解决类爆炸(不同维度分类后组合在一起情况超级多)可以有哪些方法?
策略模式可以(写好的类组合,(sms,email,站内)一个类,(普通,警告,危险)一个类)
装饰器模式也可以
二、桥接模式是什么
1、代码
<?php
class Msg {
public function send($to , $cont) { }
} class Zhan extends Msg {
public function send($to , $cont) {
return $cont . '站内发给' . $to;
}
} class Email extends Msg {
public function send($to , $cont) {
return $cont . 'Email发给' . $to;
}
} class Sms extends Msg {
public function send($to , $cont) {
return $cont . '短信发给' . $to;
}
} class Common {
public function send($cont) {
return '慢速:' . $cont;
} }
class Warning {
public function send($cont) {
return '中速:' . $cont;
} } class Danger {
public function send($cont) {
return '急速:' . $cont;
}
} $email = new Email();
$sms = new SMS();
$warn = new Warning();
$dang = new Danger();
echo $warn->send($email->send('lisi' , '考试了')) , "<br>";
echo $dang->send($sms->send('lisi' , '挂科了')) , "<br>"; ?>
解决类爆炸(不同维度分类后组合在一起情况超级多)可以有哪些方法?

策略模式可以(写好的类组合,(sms,email,站内)一个类,(普通,警告,危险)一个类)
装饰器模式也可以
php设计模式课程---9、桥接模式是什么的更多相关文章
- Java设计模式之《桥接模式》及应用场景
		
摘要: 原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/6497919.html 这里摘抄一份他处的概念,你可以不必理会,先看下面得讲解与实例, ...
 - 实例解析Python设计模式编程之桥接模式的运用
		
实例解析Python设计模式编程之桥接模式的运用 这篇文章主要介绍了Python设计模式编程之桥接模式的运用,桥接模式主张把抽象部分与它的实现部分分离,需要的朋友可以参考下 我们先来看一个例子: #e ...
 - java23种设计模式——七、桥接模式
		
原文地址:https://www.cnblogs.com/chenssy/p/3317866.html 源码在我的github和gitee中获取 目录 java23种设计模式-- 一.设计模式介绍 j ...
 - [设计模式] javascript 之 桥接模式
		
桥接模式说明 定义:分离抽象化与实现化,使之可以自由独立的变化: 说明:由于软件环境需求原因,使得类型抽象具有多种实现以自身变化定义等情况,这使得我们要分离抽象实现与具体实现,使得抽象化与实现化解耦, ...
 - Net设计模式实例之桥接模式( Bridge Pattern)
		
一.桥接模式简介(Brief Introduction) 桥接模式(Bridge Pattern),将抽象部分与它的实现部分分离,使的抽象和实现都可以独立地变化. Decouple an abstra ...
 - 设计模式学习之桥接模式(Bridge,结构型模式)(15)
		
参考地址:http://terrylee.cnblogs.com/archive/2006/02/24/336652.html 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化, ...
 - 【读书笔记】读《JavaScript设计模式》之桥接模式
		
桥接模式(Bridge)将抽象部分与它的实现部分分离,使它们都可以独立地变化. 一.使用场景 使用场景一:事件监控 对于前端而言,最典型的使用场景——事件监控.如—— addEvent(element ...
 - Java设计模式系列之桥接模式
		
桥接模式(Bridge)的定义 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?这就要使用桥接模式 将抽象部分与它的实现部分分离,使它们都可以独立地 ...
 - java设计模式-----14、桥接模式
		
Bridge 模式又叫做桥接模式,是构造型的设计模式之一.Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任.它的主要特点是把抽象(abstraction ...
 - 设计模式学习心得<桥接模式 Bridge>
		
说真的在此之前,几乎没有对于桥接模式的应用场景概念. 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化.这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来 ...
 
随机推荐
- url 传中文
			
if (null == keyword || keyword.equals("关键字")) keyword = ""; if(keyword.length()& ...
 - 微信小程序实战 购物车功能
			
代码地址如下:http://www.demodashi.com/demo/12400.html 一.准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.com/ ...
 - .NET实现爬虫
			
前几天看到一个.NET Core写成的爬虫,有些莫名的小兴奋,之前一直用集搜客去爬拉勾网的招聘信息,这个傻瓜化工具相当于用HTML模板页去标记DOM节点,然后在浏览器窗口上模拟人的浏览行为同时跟踪节点 ...
 - Java中执行存储过程和函数
			
装载于:http://www.cnblogs.com/liunanjava/p/4261242.html 一.概述 如果想要执行存储过程,我们应该使用 CallableStatement 接口. Ca ...
 - 解决phpmyadmin导入大数据库出现一系列问题
			
在用phpmyadmin导入mysql数据库文件时,往往超过2M就会提示文件大,导入不成功.这时我们打开phpmyadmin-->libraries-->config.default.ph ...
 - sql 注入 与解决
			
package cn.itcast.jdbc; import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLExce ...
 - Dubbo(一)Dubbo资料
			
这个资料绝对权威了:http://dubbo.io/user-guide/
 - JQuery中的text(),html()和val()区别
			
定义和用法 text() 方法方法设置或返回被选元素的文本内容 代码如下 <!DOCTYPE html> <html lang="en"> <head ...
 - 05 redis中的Setbit位图法统计活跃用户
			
一:场景=>>>长轮询Ajax,在线聊天时,能够用到 Setbit 的实际应用 场景: 1亿个用户, 每个用户 登陆/做任意操作 ,记为 今天活跃,否则记为不活跃 每周评出: 有奖活 ...
 - Android 关于软键盘
			
一..弹出的时候显示Editext框 添加布局replay_input <?xml version="1.0" encoding="utf-8"?> ...