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

商务网站建设实训总结网络营销的模式有哪些?

商务网站建设实训总结,网络营销的模式有哪些?,wordpress官方模版,怎么查看网站有没有做3011. 外观模式的定义 外观模式属于结构型设计模式,它定义了一个高层接口,使得子系统的接口变得更加简单。外观模式通过将子系统复杂的逻辑隐藏在一个外部的接口(外观类)中,简化了客户端与子系统之间的交互。 外观模式的…
1. 外观模式的定义

外观模式属于结构型设计模式,它定义了一个高层接口,使得子系统的接口变得更加简单。外观模式通过将子系统复杂的逻辑隐藏在一个外部的接口(外观类)中,简化了客户端与子系统之间的交互。

外观模式的核心

  • 封装复杂性:客户端与复杂子系统交互时,不直接与多个子系统的内部类交互,而是通过外观类来简化这一过程。
  • 提供统一的接口:外观类向客户端提供一个统一的接口,方便客户端调用和使用系统功能。
2. 外观模式的参与者
  • 外观类(Facade):外观类是设计模式的核心,它将多个复杂的子系统操作封装为一个简化的接口,客户端只需要通过外观类来调用这些操作。
  • 子系统类(Subsystem):子系统类包含了实际完成工作的组件类,它们执行具体的功能。子系统类不直接暴露给客户端,而是通过外观类进行操作。
  • 客户端(Client):客户端是依赖外观类提供的简化接口与子系统进行交互的类。
3. 外观模式的结构图
+-------------------------+       +-----------------+
|      客户端 (Client)     | ----> |    外观类 (Facade)|
+-------------------------+       +-----------------+|+------------+------------+|            |            |+---------+----+  +-----+-----+  +---+---+| 子系统类 1    |  | 子系统类 2    |  | 子系统类 3   |+--------------+  +-------------+  +-------------+
  • 外观类:为客户端提供一个简化的接口,内部负责协调多个子系统类的操作。
  • 子系统类:实际执行任务的类,外部不直接访问,而是通过外观类调用。
4. 外观模式的优缺点
优点:
  1. 简化客户端代码:客户端不再需要与多个子系统类交互,直接通过外观类访问。
  2. 减少系统间的耦合性:客户端与多个子系统类的联系被外观类所替代,降低了系统之间的依赖关系。
  3. 集中管理子系统:外观类可以为子系统提供统一的管理点,便于维护和扩展。
缺点:
  1. 可能增加冗余代码:外观类可能会将多个子系统的操作封装成类似的接口,导致冗余代码。
  2. 功能受限:外观类的设计通常是简化的,隐藏了系统内部的一些细节,如果客户端需要更加细粒度的控制,外观模式可能不适用。
5. 外观模式的应用场景

外观模式适用于以下场景:

  • 简化复杂系统的接口:当子系统中的类非常复杂,且客户端不需要了解其内部实现时,可以使用外观模式来提供一个简化的接口。
  • 解耦复杂子系统:当客户端与多个子系统有耦合时,可以通过外观类减少这些依赖,降低系统的复杂度。
  • 提供高层接口:当需要为多个子系统提供统一的访问入口时,可以使用外观模式来设计一个高层接口。
6. 实际应用示例

假设我们有一个复杂的音响系统,包括多个组件:放大器(Amplifier)调谐器(Tuner)、**CD播放器(CDPlayer)**等。我们希望提供一个简单的接口来让客户端使用这些功能,而不必直接与各个组件交互。

6.1 子系统类设计
class Amplifier {public void on() {System.out.println("Amplifier is on");}public void off() {System.out.println("Amplifier is off");}public void setVolume(int volume) {System.out.println("Setting amplifier volume to " + volume);}
}class Tuner {public void on() {System.out.println("Tuner is on");}public void off() {System.out.println("Tuner is off");}public void setFrequency(double frequency) {System.out.println("Tuner is set to frequency: " + frequency);}
}class CDPlayer {public void on() {System.out.println("CD Player is on");}public void off() {System.out.println("CD Player is off");}public void play() {System.out.println("Playing CD");}
}

6.2 外观类设计

class HomeTheaterFacade {private Amplifier amplifier;private Tuner tuner;private CDPlayer cdPlayer;public HomeTheaterFacade(Amplifier amplifier, Tuner tuner, CDPlayer cdPlayer) {this.amplifier = amplifier;this.tuner = tuner;this.cdPlayer = cdPlayer;}public void watchMovie() {System.out.println("Get ready to watch a movie...");amplifier.on();tuner.on();cdPlayer.on();cdPlayer.play();}public void endMovie() {System.out.println("Shutting down movie...");amplifier.off();tuner.off();cdPlayer.off();}
}

6.3 客户端代码

public class Client {public static void main(String[] args) {Amplifier amplifier = new Amplifier();Tuner tuner = new Tuner();CDPlayer cdPlayer = new CDPlayer();// 创建外观对象HomeTheaterFacade homeTheater = new HomeTheaterFacade(amplifier, tuner, cdPlayer);// 客户端通过外观类与多个子系统交互homeTheater.watchMovie();   // 启动电影观看homeTheater.endMovie();     // 关闭电影观看}
}

6.4 运行结果

Get ready to watch a movie...
Amplifier is on
Tuner is on
CD Player is on
Playing CD
Shutting down movie...
Amplifier is off
Tuner is off
CD Player is off
7. 代码分析
  • 子系统类AmplifierTunerCDPlayer各自提供了启动、停止以及其他特定功能的方法。
  • 外观类HomeTheaterFacade将多个子系统的操作封装成了两个简洁的方法:watchMovie()endMovie()。这些方法内部调度子系统类的多个操作。
  • 客户端:客户端只需要创建外观类的实例并调用简化的接口,避免了与每个子系统类的直接交互。
8. 总结

外观模式通过提供一个简化的接口,减少了客户端与多个子系统的交互。它有效地解耦了客户端和子系统,简化了系统的使用和维护。当我们面临一个复杂的系统,且客户端不需要过多了解系统内部实现时,外观模式是一个非常好的选择。

希望这个详细的教程能够帮助你深入理解外观模式!如果有任何问题或者需要更多的细节,请随时提问!

版权声明
  1. 本文内容属于原创,欢迎转载,但请务必注明出处和作者,尊重原创版权。
  2. 转载时,请附带原文链接并注明“本文作者:扣丁梦想家
  3. 禁止未经授权的商业转载。

如果您有任何问题或建议,欢迎留言讨论。

http://www.dtcms.com/wzjs/71364.html

相关文章:

  • 东莞网站营销公司seo网络推广机构
  • 学校网站制作推荐加盟培训机构
  • 做网站有哪些需求关键词首页排名代做
  • 郑州专业做淘宝直播网站seo网络推广报价
  • 内蒙古做网站的公司关键词工具有哪些
  • 酒店招聘做的好的网站seo课程培训学校
  • 洛阳网站建设哪家权威求老哥给几个靠谱的网站
  • 厦门做网站找哪家公司手游推广去哪里找客源
  • 家装设计网站大全无人区在线观看高清1080
  • 网页设计精选网站最新的疫情数据
  • 网站做电话线用网络营销策划的具体流程是
  • 网站代码有哪些网站优化入门免费教程
  • 网站怎么提升实用性seo推广外包报价表
  • 闵行网站建设推广百度问答平台入口
  • 个人软件制作网站广州seo顾问服务
  • 无锡装修公司做网站深圳网站建设微信开发
  • 电子商务网站建设作业12345浏览器网址大全
  • 怎么做网站程序怎样做网络推广挣钱
  • 网站地址栏广告公司取名字参考大全
  • 网站制作视频课程谷歌官网
  • 行业网站导航源码百度电话号码查询平台
  • 河北省住房和城乡建设厅 网站营销策略国内外文献综述
  • 电子商务网站建设与维护 答案今日北京新闻
  • 网站建设拍金手指谷哥14深圳seo优化外包公司
  • 网络科技公司经营范围参考如何利用seo赚钱
  • 男男做视频网站网站推广的作用在哪里
  • 网站图片切换效果百度官方入口
  • 个人备案网站放什么手续关键词优化公司前十排名
  • 网站建设官方网站怎样申请网站注册
  • 建设银行网站登录入口温州网站快速排名