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

wordpress主机建站wordpress登录验证

wordpress主机建站,wordpress登录验证,做响应式网站怎么设计,微信公众平台小程序官网简介 桥接模式#xff08;Bridge Pattern#xff09;又叫作桥梁模式、接口#xff08;Interface#xff09;模式或柄体#xff08;Handle and Body#xff09;模式#xff0c;指将抽象部分与具体实现部分分离#xff0c;使它们都可以独立地变化#xff0c;属于结构型…简介 桥接模式Bridge Pattern又叫作桥梁模式、接口Interface模式或柄体Handle and Body模式指将抽象部分与具体实现部分分离使它们都可以独立地变化属于结构型设计模式。 常用用于替换继成 通用模板 创建实现接口确定实现维度的基本操作提供给Abstraction使用。该类一般为接口或抽象类。 // 抽象实现 public interface IImplementor {void operationImp(); }创建具体实现类Implementor的具体实现。 // 具体实现类A public class ConcreteImplementorA implements IImplementor{Overridepublic void operationImp() {System.out.println(I am ConcreteImplementorA);} }// 具体实现类B public class ConcreteImplementorB implements IImplementor {Overridepublic void operationImp() {System.out.println(I am ConcreteImplementorB);} }创建抽象类该类持有一个对实现角色的引用抽象角色中的方法需要实现角色来实现。抽象角色一般为抽象类构造函数规定子类要传入一个实现对象。 // 抽象 public abstract class Abstraction {private IImplementor iImplementor;public Abstraction(IImplementor iImplementor) {this.iImplementor iImplementor;}public void operation() {iImplementor.operationImp();} }创建修正抽象类Abstraction的具体实现对Abstraction的方法进行完善和扩展。 // 修正抽象类 public class RefineAbstraction extends Abstraction {public RefineAbstraction(IImplementor iImplementor) {super(iImplementor);}Overridepublic void operation() {super.operation();System.out.println(refine operation);} }创建修正实现类RefineAbstraction的具体实现 // 修正抽象实现类 public class ConcreteRefineAbstractionA extends RefineAbstraction {public ConcreteRefineAbstractionA(IImplementor iImplementor) {super(iImplementor);}Overridepublic void operation() {super.operation();System.out.println(ConcreteRefineAbstraction);} }模板测试 测试代码 public class Client {public static void main(String[] args) {// 创建一个具体的角色ConcreteImplementorA imp new ConcreteImplementorA();// 创建一个抽象的角色聚合实现RefineAbstraction abs new ConcreteRefineAbstractionA(imp);// 执行操作abs.operation();} }结果 I am ConcreteImplementorA refine operation ConcreteRefineAbstraction应用场景 在生活场景中桥接模式随处可见比如连接起两个空间维度的桥、连接虚拟网络与真实网络的链接。 当一个类内部具备两种或多种变化维度时使用桥接模式可以解耦这些变化的维度使高层代码架构稳定。 桥接模式适用于以下几种业务场景。 1在抽象和具体实现之间需要增加更多灵活性的场景。 2一个类存在两个或多个独立变化的维度而这两个或多个维度都需要独立进行扩展。 3不希望使用继承或因为多层继承导致系统类的个数剧增。 注桥接模式的一个常见使用场景就是替换继承。我们知道继承拥有很多优点比如抽象、封装、多态等父类封装共性子类实现特性。继承可以很好地实现代码复用封装的功能但这也是继承的一大缺点。因为父类拥有的方法子类也会继承得到无论子类需不需要这说明继承具备强侵入性父类代码侵入子类同时会导致子类臃肿。因此在设计模式中有一个原则为优先使用组合/聚合而不是继承。 很多时候我们分不清该使用继承还是组合/聚合或其他方式等其实可以从现实语义进行思考。因为软件最终还是提供给现实生活中的人使用的是服务于人类社会的软件是具备现实场景的。当我们从纯代码角度无法看清问题时现实角度可能会提供更加开阔的思路。 优点 1分离抽象部分及其具体实现部分。 2提高了系统的扩展性。 3符合开闭原则。 4符合合成复用原则。 缺点 1增加了系统的理解与设计难度。 2需要正确地识别系统中两个独立变化的维度。 “生搬硬套”实战 场景描述 桥接模式的定义非常玄乎直接理解不太容易所以我们还是举例子。 假设某个汽车厂商生产三种品牌的汽车Big、Tiny和Boss每种品牌又可以选择燃油、纯电和混合动力。如果用传统的继承来表示各个最终车型一共有3个抽象类加9个最终子类 如果要新增一个品牌或者加一个新的引擎比如核动力那么子类的数量增长更快。 所以桥接模式就是为了避免直接继承带来的子类爆炸。 我们来看看桥接模式如何解决上述问题。 在桥接模式中首先把Car按品牌进行子类化但是每个品牌选择什么发动机不再使用子类扩充而是通过一个抽象的“修正”类以组合的形式引入。我们来看看具体的实现。 代码开发 创建实现这里指引擎接口 // 实现接口 public interface Engine {void start(); }创建具体实现这里指的是各种引擎类 // 混动引擎实现 public class HybridEngine implements Engine {public void start() {System.out.println(Start Hybrid Engine...);} }// 油引擎实现 public class FuelEngine implements Engine {public void start() {System.out.println(Start Fuel Engine...);} }// 纯电引擎实现 public class PureEngine implements Engine {public void start() {System.out.println(Start Pure Engine...);} }创建抽象这里指的是车类 // 抽象车类 public abstract class Car {// 引用Engine:protected Engine engine;public Car(Engine engine) {this.engine engine;}public abstract void drive(); }创建修正抽象这里指的是修正车类类 // 修正车抽象类 public abstract class RefinedCar extends Car{public RefinedCar(Engine engine) {super(engine);}Overridepublic void drive() {this.engine.start();System.out.println(Drive getBrand() car...);}public abstract String getBrand(); }创建修正实现这里指具体不同品牌的车类 // Boss品牌车 public class BossCar extends RefinedCar {public BossCar(Engine engine) {super(engine);}Overridepublic String getBrand() {return Boss;} }// Big品牌车 public class BigCar extends RefinedCar {public BigCar(Engine engine) {super(engine);}Overridepublic String getBrand() {return Big;} }// Tiny品牌车 public class TinyCar extends RefinedCar {public TinyCar(Engine engine) {super(engine);}Overridepublic String getBrand() {return Tiny;} }至此我们就通过“生搬硬套”桥梁模式的模板设计出一套替换继成的桥接模式代码接下来我们进行测试 测试代码 public class Test {public static void main(String[] args) {RefinedCar car new BossCar(new HybridEngine());car.drive();} }结果 Start Hybrid Engine... Drive Boss car...总结 使用桥接模式的好处在于如果要增加一种引擎只需要针对Engine派生一个新的子类如果要增加一个品牌只需要针对RefinedCar派生一个子类任何RefinedCar的子类都可以和任何一种Engine自由组合即一辆汽车的两个维度品牌和引擎都可以独立地变化。 桥接模式实现比较复杂实际应用也非常少但它提供的设计思想值得借鉴即不要过度使用继承而是优先拆分某些部件使用组合的方式来扩展功能。
http://www.hkea.cn/news/14302022/

相关文章:

  • 网站开发实用技术知识点平阴网络营销是什么
  • 满足seo需求的网站河北电子商务seo
  • .天津网站建设电子商务网站的建设与维护
  • wordpress网站响应慢东莞需要做推广的公司
  • 温州网站设计服务商网站建设工作计划表
  • 建设用地预审系统官方网站企业网站建立的失败案例
  • 网站权重2的网站百度一下官方网址
  • 如何做电子海报在网站商务网站设计实训报告
  • 专业制作网站哪家专业网站管理助手4.0 mysql
  • 网站建设电销话术范文市场监督管理局官网入口
  • 那个网站做二手买卖的哪里有学做ppt的网站
  • wordpress多网站建设建筑公司网站建设
  • 查询学校信息的网站十大跨境电商排名
  • 建设银行查余额网站站长工具收录
  • 2019做网站seo学习论坛
  • 外贸公司网站建设费的会计科目wordpress显示空白页
  • 商城网站的开发怎么做哪家做的网站有利于百度推广
  • php记录网站访问次数成都金牛网站建设公司
  • 常平建设局网站网站建设目标的技术可行性
  • 网站开发教程收费版东阳畅销自适应网站建设
  • 中国建设银行网站查征信虚拟主机能干什么
  • 咸阳网站建设公司电话wordpress主题 yusi
  • 食药监局网站建设方案商城网站怎么做seo
  • 网站建设通讯设备中企动力网店网站设计
  • 网站开发与制作工资科技资讯
  • 安徽省校园网站建设一个网站开发背景是什么
  • 网站建设c云世家宋南南wordpress转成繁体
  • 外贸跨境电商网站建设开发网站展现形式
  • 织梦网站仿站wordpress的翻译文件
  • 学做饼干的网站免费制作软件的网站