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

phpcms v9网站建设qq推广软件

phpcms v9网站建设,qq推广软件,网站网站设计的公司,学校网站开发方案模板概念 桥接模式是一种结构型设计模式#xff0c;它通过将抽象与其实现分离来解耦。它使用接口#xff08;抽象类#xff09;作为桥梁#xff0c;将一个抽象类与其实现类的代码分别独立开来#xff0c;从而使它们可以各自独立地变化。桥接模式的核心思想是“组合优于继承”…概念 桥接模式是一种结构型设计模式它通过将抽象与其实现分离来解耦。它使用接口抽象类作为桥梁将一个抽象类与其实现类的代码分别独立开来从而使它们可以各自独立地变化。桥接模式的核心思想是“组合优于继承”。 示例 为了更好地理解桥接模式我们来看一个简单的示例假设有一个形状类其中有一个颜色属性。此时如果我们使用继承来实现不同颜色的形状类就需要创建许多子类使代码结构变得复杂且难以维护。而使用桥接模式则可以将形状和颜色分别抽象出来从而将它们独立开来。 下面是一个简单的代码示例 public interface Color {String getColor(); }public class Red implements Color {Overridepublic String getColor() {return 红色;} }public class Blue implements Color {Overridepublic String getColor() {return 蓝色;} }public abstract class Shape {protected Color color;public Shape(Color color) {this.color color;}public abstract void draw(); }public class Rectangle extends Shape {public Rectangle(Color color) {super(color);}Overridepublic void draw() {System.out.println(绘制一个 color.getColor() 的矩形);} }public class Circle extends Shape {public Circle(Color color) {super(color);}Overridepublic void draw() {System.out.println(绘制一个 color.getColor() 的圆形);} }在上面的代码中我们首先定义了一个颜色接口并分别实现了红色和蓝色。然后我们定义了一个抽象的形状类其中有一个颜色属性和一个抽象方法draw()。最后我们实现了具体的矩形和圆形类并在构造函数中传入了一个颜色对象。 这样我们就将形状和颜色分别抽象出来从而实现了解耦。当我们需要创建不同颜色的形状时只需要创建不同颜色的对象并传入即可。 Android应用 在Android应用开发中桥接模式通常用于将业务逻辑和UI分离。例如在MVPModel-View-Presenter模式中Presenter通常充当桥接的角色将View和Model分离开来。Presenter通过接口抽象类与View进行交互并通过Model来获取数据。 下面是一个简单的MVP示例 public interface LoginView {void showProgress();void hideProgress();void setUsernameError();void setPasswordError();void navigateToHome(); }public interface LoginPresenter {void validateCredentials(String username, String password); }public class LoginPresenterImpl implements LoginPresenter {private LoginView loginView;private LoginModel loginModel;public LoginPresenterImpl(LoginView loginView) {this.loginView loginView;loginModel new LoginModelImpl();}Overridepublic void validateCredentials(String username, String password) {if (TextUtils.isEmpty(username)) {loginView.setUsernameError();return;}if (TextUtils.isEmpty(password)) {loginView.setPasswordError();return;}loginView.showProgress();loginModel.login(username, password, new LoginModel.OnLoginFinishedListener() {Overridepublic void onUsernameError() {loginView.hideProgress();loginView.setUsernameError();}Overridepublic void onPasswordError() {loginView.hideProgress();loginView.setPasswordError();}Overridepublic void onSuccess() {loginView.hideProgress();loginView.navigateToHome();}});} }public interface LoginModel {interface OnLoginFinishedListener {void onUsernameError();void onPasswordError();void onSuccess();}void login(String username, String password, OnLoginFinishedListener listener); }public class LoginModelImpl implements LoginModel {Overridepublic void login(final String username, final String password, final OnLoginFinishedListener listener) {new Handler().postDelayed(new Runnable() {Overridepublic void run() {if (username.equals(user) password.equals(password)) {listener.onSuccess();} else if (!TextUtils.isEmpty(username)) {listener.onPasswordError();} else {listener.onUsernameError();}}}, 2000);} }在上面的代码中我们定义了一个LoginView接口其中包含了一些用于显示UI的方法。然后我们定义了一个LoginPresenter接口它与LoginView接口相连并通过LoginModel来获取数据。最后我们实现了具体的LoginPresenterImpl和LoginModelImpl类。 通过这种方式我们将UI和业务逻辑分开从而使代码结构更清晰易于维护。 源码解析 在Android源码中桥接模式也有广泛的应用。例如在View系统中View和ViewGroup之间就采用了桥接模式来实现解耦。 在View系统中View是Android系统中的基本UI组件而ViewGroup则是一种容器组件用于将多个View组合在一起。在这两个组件中都有一个名为LayoutParams的内部类用于描述组件的布局参数。 在早期的Android版本中View和ViewGroup之间是通过继承来实现布局参数的传递的。但是这样会导致代码结构复杂且难以维护因此在Android 2.2版本中Google采用了桥接模式来重构View系统从而使其更加灵活和易于维护。 下面是一个简单的代码示例展示了View和ViewGroup之间是如何通过桥接模式来传递布局参数的 public class View {private LayoutParams mLayoutParams;public void setLayoutParams(LayoutParams params) {mLayoutParams params;}public LayoutParams getLayoutParams() {return mLayoutParams;}public static class LayoutParams {// 布局参数的属性} }public class ViewGroup extends View {private ArrayListView mChildList new ArrayList();public void addView(View child) {mChildList.add(child);child.setParent(this);}public void removeView(View child) {mChildList.remove(child);child.setParent(null);}public void removeAllViews() {for (View child : mChildList) {child.setParent(null);}mChildList.clear();}public static class LayoutParams extends View.LayoutParams {// 布局参数的属性} }在上面的代码中我们首先定义了一个View类并在其中包含了一个LayoutParams内部类。然后我们定义了一个ViewGroup类它继承自View并增加了一个mChildList成员变量和相关的方法用于管理子View。 最后我们在ViewGroup中定义了一个LayoutParams内部类并继承自View.LayoutParams。通过这种方式我们将布局参数从View中分离出来使得View和ViewGroup之间的关系更加清晰。 总之桥接模式是一种常用的设计模式它可以帮助我们将抽象和实现分离开来从而实现解耦。
http://www.hkea.cn/news/14511073/

相关文章:

  • 网站分为哪些类型做微信小程序和网站那个简单
  • 深圳公明网站建设公司十大农业网站
  • 工信部网站域名备案呼和浩特企业网站排名优化
  • 做网站后台怎么搭建营销推广的特点
  • 免费网站备可以做直播的游戏视频网站
  • 对网站建设的调研报告服务器如何架设网站
  • 重庆大足网站制作公司推荐佛山网站建站
  • cms自助建站系统流程平台
  • 购物商城类网站备案北京工装装修公司
  • 深圳专业网站建设服务南宁有名的网络公司
  • 移动电商网站开发需求wordpress编辑无效
  • 电子商务毕业设计网站建设网络汽车营销策划方案ppt
  • 网站访客qq系统郑州做网站的公司msgg
  • 单页展示网站高校网站建设情况报告范文
  • 利辛做网站商城小程序开发多少钱
  • 网站开发的app可以自己做网站赚钱吗
  • 青浦练塘网站建设自动化培训机构排名
  • 做建筑机械网站那个网站好wordpress发多少文章卡
  • 网站建设及域名申请 厦门设计好的网站
  • 社区网站如何做企业建网站租用服务器好还是买一个好
  • 网站建设的作用是什么免费行情软件app网站大全下载免费入口
  • 工程建设项目网站医院网站开发多少钱
  • 自己做网站要钱么美食网站 怎么做
  • 软件工程项目apache wordpress 优化
  • 下列关于网站制作的wordpress ck
  • 网站备案密码怎么找回ih5做的网站怎么上传
  • 做兼职的网站有哪些工作内容推动高质量发展心得体会
  • 北京企业网站建设北滘网站开发
  • 广告模板在哪个网站好广东工程建设监理协会网站
  • 顺义区专业网站制作网站建设移动互联网开发技术学什么