当前位置: 首页 > news >正文

四方坪网站建设网站关键词推广

四方坪网站建设,网站关键词推广,hexo wordpress 主题,做数据同步的两个网站一、问题场景 现在对”不同手机类型“的 “不同品牌”实现操作编程(比如: 开机、关机、上网,打电话等) 二、传统解决方案 传统方案解决手机使用问题类图: 三、传统方案分析 传统方案解决手机操作问题分析 1、扩展性问题(类爆炸),如果我们…

一、问题场景
现在对”不同手机类型“的 “不同品牌”实现操作编程(比如: 开机、关机、上网,打电话等)

二、传统解决方案

传统方案解决手机使用问题类图:
在这里插入图片描述

三、传统方案分析
传统方案解决手机操作问题分析

1、扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式),就需要增加各个品 牌手机的类,同样如果我们增加一个手机品牌,也要在各个手机样式类下增加。

2、违反了单一职责原则,当我们增加手机样式时,要同时增加所有品牌的手机,这 样增加了代码维护成本。

3、我们之前讲过,解决多层次继承导致类爆炸的问题,可以使用“组合大于继承”的设计原则,而桥接模式就是“组合大于接触”设计原则的实现。

四、桥接模式
1、定义

当一个类存在两个或者多个独立变化维度时,我们通过组合的方式,让这两个或多个维度可以独立进行扩展。

也就是,

将抽象和实现解耦,放在两个不同的类层次中,让它们可以独立变化。

2、特点

桥接模式基于“组合优于继承”和“单一职责”原则,通过使用封装,组合以及继承等行为让不同的类承担不同的职责。主要特点是把抽象(Abstraction)和行为实现(Implementation)分离开来,从而保持各部分的独立性以及应对它们的功能扩展。

3、原理类图

在这里插入图片描述

(1)Client类: 桥接模式的调用者

(2)抽象类(Abstraction): 维护了Implementor/即它的实现子类ConcretelmplementorA…,二者是组合关系,Abstraction充当桥接类

(3)RefinedAbstraction: 是Abstraction抽象类的子类

(4)Implementor: 行为实现类的接口

(5)ConcreteImplementorA/B: 行为的具体实现类

4、代码实现

public abstract class Phone {//组合品牌private Brand brand;//构造器public Phone(Brand brand) {super();this.brand = brand;}protected void open() {this.brand.open();}protected void close() {brand.close();}protected void call() {brand.call();}}//折叠式手机类,继承 抽象类 Phone
public class FoldedPhone extends Phone {//构造器public FoldedPhone(Brand brand) {super(brand);}public void open() {super.open();System.out.println(" 折叠样式手机 ");}public void close() {super.close();System.out.println(" 折叠样式手机 ");}public void call() {super.call();System.out.println(" 折叠样式手机 ");}
}//直立式手机类,继承 抽象类 Phone
public class UpRightPhone extends Phone {//构造器public UpRightPhone(Brand brand) {super(brand);}public void open() {super.open();System.out.println(" 直立样式手机 ");}public void close() {super.close();System.out.println(" 直立样式手机 ");}public void call() {super.call();System.out.println(" 直立样式手机 ");}
}//接口
public interface Brand {void open();void close();void call();
}public class XiaoMi implements Brand {@Overridepublic void open() {// TODO Auto-generated method stubSystem.out.println(" 小米手机开机 ");}@Overridepublic void close() {// TODO Auto-generated method stubSystem.out.println(" 小米手机关机 ");}@Overridepublic void call() {// TODO Auto-generated method stubSystem.out.println(" 小米手机打电话 ");}}public class Vivo implements Brand {@Overridepublic void open() {// TODO Auto-generated method stubSystem.out.println(" Vivo手机开机 ");}@Overridepublic void close() {// TODO Auto-generated method stubSystem.out.println(" Vivo手机关机 ");}@Overridepublic void call() {// TODO Auto-generated method stubSystem.out.println(" Vivo手机打电话 ");}}//客户端
public class Client {public static void main(String[] args) {//获取折叠式手机 (样式 + 品牌 )Phone phone1 = new FoldedPhone(new XiaoMi());phone1.open();phone1.call();phone1.close();System.out.println("=======================");Phone phone2 = new FoldedPhone(new Vivo());phone2.open();phone2.call();phone2.close();System.out.println("==============");UpRightPhone phone3 = new UpRightPhone(new XiaoMi());phone3.open();phone3.call();phone3.close();System.out.println("==============");UpRightPhone phone4 = new UpRightPhone(new Vivo());phone4.open();phone4.call();phone4.close();}}

5、桥接模式适用场景

适用于不希望使用继承或者因为多层次继承导致系统类的个数急剧增加。比如:

(1)JDC驱动程序

(2)银行转账系统

转账分类:网上转账,柜台转账,AMT转账

转账用户分类:普通用户,银行卡用户,金卡用户

(3)消息管理

消息类型:即时消息,延时消息

消息分类:手机短信,邮件消息,QQ消息

http://www.qdjiajiao.com/news/5671.html

相关文章:

  • 常州网站推广优化百度惠生活怎么优化排名
  • 从化区住房和建设局网站百度指数怎么算
  • Python用数据库做网站灰色关键词排名
  • WordPress禁用自适应专业seo站长工具
  • 搞钱的路子网站本地广告推广平台哪个好
  • 手机如何做api网站网络营销的实现方式包括
  • 网站流量报告2022最新新闻
  • 网站建设需要会什么软件有哪些内容今日要闻
  • 池州做网站上海百度推广公司排名
  • 深圳网站制作有名 乐云践新郑州网络营销公司排名
  • 工程认证网站的建设长沙网站制作费用
  • 沈阳做网站哪家公司好站长统计软件
  • 怎么进入别人网站服务器web 目录网站优化排名金苹果系统
  • 怎样卸载微信wordpress上海关键词seo
  • 河北省住房和城乡建设厅的网站seo基础知识包括什么
  • 智联招聘网站怎么做微招聘信息吗明星百度指数在线查询
  • 如何将网站变成免费全能优化大师
  • 网站开发毕设论文百度网盘电脑网页版
  • wordpress 前端编辑器重庆seo排名扣费
  • 网站建设可以学吗最好用的搜索神器
  • 一个好网站建设西安seo优化公司
  • 做网站的大型公司949公社招聘信息
  • 石家庄网站建设咨询快照网站
  • 宽带办理什么套餐最划算如何进行搜索引擎优化?
  • 做网站销售会遇到哪些问题seo网站优化培训公司
  • 软件工程师分类网站优化排名
  • 哪些网站可以做微课视频外链平台
  • 手机怎么网站建设广州市运营推广公司
  • 一键logo生成器武汉百度seo网站优化
  • 十大看b站直播的推荐理由seo内部优化方案