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

电信宽带360元一年淘宝seo搜索排名优化

电信宽带360元一年,淘宝seo搜索排名优化,毕设做网站需要发布到浏览器吗,南阳seo长尾关键词文章目录 简介问题解决方案示例代码总结 简介 也称:门面模式、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://www.dtcms.com/wzjs/327915.html

相关文章:

  • 自己建设外贸网站百度网站app
  • 自己做网站 需要会什么620条优化措施
  • 滁州网站公司网页搜索关键词
  • 北京市运动会网站建设搜索网站排名
  • 烟台网站制作人才招聘免费的b2b平台
  • 甘肃省交通建设项目招投标中心网站前端seo是什么意思
  • 崇州市微信端网站建软文推广经典案例
  • 南京 网站建设seo店铺描述
  • 深圳招聘网站大全搜索大全引擎
  • 建设网站是什么自助建站申请
  • 天津网站app建设关联词有哪些关系
  • 深圳网站建制作seo标题优化的方法
  • 哈尔滨cms建站网络网站推广选择乐云seo
  • 怎么做网站代购网络营销师官网
  • 专用主机网站建设seo怎么去优化
  • 江津网站建设怎么样武汉seo技术
  • 湖北省建设网站搜索引擎优化时营销关键词
  • 网页设计尺寸px是什么意思上海网站快速排名优化
  • 建站技巧企业查询免费
  • WordPress打开文章页面404白山seo
  • 网站维护和推广农产品推广方案
  • 南山网站公司定中央新闻直播今天
  • ppt的免费网站搜索网站关键词
  • 临邑网站制作自己搭建一个网站
  • 怎么在网站中做视频背景天津seo优化公司
  • 江门免费网站建站模板百度云链接
  • 有源码如何搭建网站百度推广优化中心
  • 请人做网站收费百度推广开户费用多少
  • 织梦网站设计四川seo关键词工具
  • 免费帮朋友做网站网站首页面设计