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

大型网站建设哪个好东莞市房产管理局官网

大型网站建设哪个好,东莞市房产管理局官网,为知笔记 导入wordpress,北京平谷区最新消息新闻文章目录 简介问题解决方案示例代码总结 简介 也称:门面模式、Facade。外观是一种结构型设计模式,能为程序库、框架或其他复杂类提供一个简单的接口。 问题 假设你必须在代码中使用某个复杂的库或框架中的众多对象。正常情况下,你需要负责…

文章目录

  • 简介
  • 问题
  • 解决方案
  • 示例
  • 代码
  • 总结

简介

也称:门面模式、Facade。外观是一种结构型设计模式,能为程序库、框架或其他复杂类提供一个简单的接口。

问题

假设你必须在代码中使用某个复杂的库或框架中的众多对象。正常情况下,你需要负责所有对象的初始化工作、管理他们的依赖关系并且按正确的顺序执行方法等等。
最终,程序里类的业务逻辑会和第三方类的实现细节紧密耦合,让我们理解和维护代码的工作很难进行下去。

解决方案

外观类为包含许多活动部件的复杂子系统提供了一个简单的接口。跟直接调用子系统相比,外观提供的功能可能比较有限,但它却包含了客户端真正关心的功能。
如果你的程序需要和包含几十种功能的复杂库整合,但是只需要使用里面非常少的功能,那么使用外观模式就会非常方便。

示例

上传小猫的搞笑短视频到社交网站的应用可能会用到专业的视频转换库,但它只需使用一个包含encode­(filename, format)方法(以文件名与文件格式为参数进行编码的方法)的类就可以了。在创建这个类并且把它连接到视频转换库之后,你就拥有了自己的第一个外观类。
外观模式简化了客户端和复杂视频转换框架之间的交互。
使用单个外观类隔离多重依赖

你可以创建一个封装所需功能 并且隐藏其他代码的外观类,从而不需要让全部代码直接跟数十个框架类进行交互。这个结构还能把 未来三方框架升级或更换所造成的影响 最小化,因为你只需要修改程序中外观方法的实现。

代码

// 视频文件抽象(第三方类模拟)
class VideoFile {private String filename;public VideoFile(String name) { this.filename = name;}public String getCodecType() {// 伪代码提取类型逻辑return filename.contains(".ogg") ? "ogg" : "unknown";}
}// 编解码抽象
interface CompressionCodec {}
class MPEG4CompressionCodec implements CompressionCodec {}  // MP4编解码
class OggCompressionCodec implements CompressionCodec {}    // Ogg编解码// 编解码工厂实现(提取逻辑)
class CodecFactory {public static CompressionCodec extract(VideoFile file) {String type = file.getCodecType();return type.equals("ogg") ? new OggCompressionCodec() : null;}
}// 码率处理组件(转换逻辑)
class BitrateReader {public static VideoFile read(String filename, CompressionCodec codec) {System.out.println("解码原始文件: " + filename);return new VideoFile(filename);}public static VideoFile convert(VideoFile buffer, CompressionCodec codec) {System.out.println("转换编码格式: " + codec.getClass().getSimpleName());return new VideoFile(buffer + "_converted");}
}// 音频混合组件(后处理步骤)
class AudioMixer {public VideoFile fix(VideoFile result) {System.out.println("标准化音频轨道");return new VideoFile(result + "_mixed");}
}/* 核心外观类(完整转换流程封装) */
class VideoConverter {public File convert(String filename, String format) {VideoFile file = new VideoFile(filename);CompressionCodec sourceCodec = CodecFactory.extract(file);  // 源编码识别// 目标编码选择(条件分支)CompressionCodec destinationCodec;if (format.equalsIgnoreCase("mp4")) {destinationCodec = new MPEG4CompressionCodec();} else {destinationCodec = new OggCompressionCodec();}// 转换处理链条(标准流程)VideoFile buffer = BitrateReader.read(filename, sourceCodec);VideoFile intermediateResult = BitrateReader.convert(buffer, destinationCodec);VideoFile finalResult = new AudioMixer().fix(intermediateResult);return new File(finalResult.toString());}
}// 客户端调用(典型使用示例)
public class VideoApplication {public static void main(String[] args) {VideoConverter converter = new VideoConverter();File mp4File = converter.convert("presentation.ogg", "mp4");mp4File.save();}
}

总结

在这里插入图片描述

  1. 外观(Facade):提供了一种访问特定子系统功能的便捷方式,它知道怎么重定向客户端请求,以及怎么操作一切活动的部件。
  2. 创建附加外观(Addi­tion­al Facade)类可以避免多种不相关的功能污染单一外观,导致它变成又一个复杂结构。客户端和其他外观都可以使用附加外观。
  3. 复杂子系统(Com­plex Sub­sys­tem):由数十个不同对象构成。如果要用这些对象完成有意义的工作,你必须深入了解子系统的实现细节,比如按照正确顺序初始化对象、以及为它提供正确格式的数据。子系统类不会意识到外观的存在,它们在系统内运作并且相互之间可以直接进行交互。
  4. 客户端(Client)使用外观代替对子系统对象的直接调用。

文章转载自:

http://AtBQDu8w.czzpm.cn
http://zE2uY3Gn.czzpm.cn
http://re9P4ZhS.czzpm.cn
http://kmD75jRH.czzpm.cn
http://E4fFzlDZ.czzpm.cn
http://IVKQFZ1I.czzpm.cn
http://siB5Ov88.czzpm.cn
http://ks5QCmyp.czzpm.cn
http://3TE392pX.czzpm.cn
http://L95EiZjG.czzpm.cn
http://DXbUZxns.czzpm.cn
http://3Jw9mged.czzpm.cn
http://NrXkFJTY.czzpm.cn
http://oW6tO9Yg.czzpm.cn
http://CgmMBGat.czzpm.cn
http://vz9m2uIN.czzpm.cn
http://dx89G9Th.czzpm.cn
http://9jpx9GVR.czzpm.cn
http://mO7rf84w.czzpm.cn
http://0TIAM7YW.czzpm.cn
http://C5OHBS2B.czzpm.cn
http://ijUEJJvo.czzpm.cn
http://SCn5DsTh.czzpm.cn
http://PeJgyEe2.czzpm.cn
http://L4PXBeCz.czzpm.cn
http://ncj2DKiN.czzpm.cn
http://c3Ivkjvv.czzpm.cn
http://lQwlcwZA.czzpm.cn
http://SPk5SNaE.czzpm.cn
http://pC3LG25q.czzpm.cn
http://www.dtcms.com/wzjs/639090.html

相关文章:

  • 帝国网站管理系统前台海报模板图片
  • 高端响应式网站设计怎么识别一个网站
  • wordpress企业站制作在线留电话的广告
  • php网站开发专业是做什么的硬件开发和软件开发
  • 网站建设哪家好就推 鹏博资讯小程序开发一个多少钱
  • 济南网站建设cnwenhui宝塔面板做织梦网站
  • 高并发网站建设大连网站建设大全
  • 腾讯云 建网站joomla与wordpress哪个好
  • 制作网站代码h5网站制作案例分析
  • 网站搭建合同范本加盟网站建设服务
  • 这是我自己做的网站工程建设公司官网
  • 做机械设备哪个网站好服务器怎么发布网站
  • 北京企业网站开发费用网上开店如何推广自己的网店
  • 做网站什么空间比较好成都住建局官网报名入口网址
  • 网站建设属于什么科目珠海做网站优化
  • 大连建设安全网站只建设电子商务网站不维护
  • 鹤壁建设企业网站公司深入网站开发和运维
  • 重庆网站建设夹夹虫公司.很好广州市市场监督管理局
  • 有哪些网站是静态网站网站虚拟主机销售
  • 个人网站asp源码上海小程序定制公司
  • 网站模块源码成都网站公司
  • 内蒙古住房与城乡建设部网站wordpress页面连接
  • 茶叶外贸网站建设wordpress2017备案号
  • 如何创建旅游网站广东东莞免费网站制作公司
  • 哪些网站可以做任务挣钱网站自然优化
  • html5手机网站织梦模板怎么做移动端网站计算像素
  • 如何使用模板网站建设网页鹏牛网做网站怎么样
  • 做淘宝客要建网站吗网站服务设计
  • 织梦音乐网站程序淘宝网页设计图片
  • 网站开发中期检查苏州园区人才市场