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

呼和浩特网站优化锡盟建设工程造价信息网站

呼和浩特网站优化,锡盟建设工程造价信息网站,常德做网站专业公司哪家好,系统门窗品牌排行前十名外观模式#xff08;Facade Pattern#xff09;是一种结构性设计模式#xff0c;它为复杂子系统提供一个统一的接口#xff0c;从而简化与这些子系统的交互。通过外观模式#xff0c;客户端可以更轻松地使用复杂系统#xff0c;而不必了解其内部实现。接下来#xff0c;…外观模式Facade Pattern是一种结构性设计模式它为复杂子系统提供一个统一的接口从而简化与这些子系统的交互。通过外观模式客户端可以更轻松地使用复杂系统而不必了解其内部实现。接下来我们将通过示例代码详细讲解外观模式并探讨它的应用场景。 外观模式示例代码 在这个示例中我们将创建一个简单的音响系统。这个系统包括多个子系统如 DVD 播放器、CD 播放器和音响设备。我们会为这个复杂系统提供一个外观类以简化用户的操作。 示例代码 // DVD 播放器子系统 class DVDPlayer {public void on() {System.out.println(DVD 播放器开机);}public void play() {System.out.println(DVD 播放中...);}public void off() {System.out.println(DVD 播放器关机);} }// CD 播放器子系统 class CDPlayer {public void on() {System.out.println(CD 播放器开机);}public void play() {System.out.println(CD 播放中...);}public void off() {System.out.println(CD 播放器关机);} }// 音响设备子系统 class SoundSystem {public void on() {System.out.println(音响设备开机);}public void setVolume(int level) {System.out.println(音量设置为 level);}public void off() {System.out.println(音响设备关机);} }// 外观类 class HomeTheaterFacade {private DVDPlayer dvdPlayer;private CDPlayer cdPlayer;private SoundSystem soundSystem;public HomeTheaterFacade() {dvdPlayer new DVDPlayer();cdPlayer new CDPlayer();soundSystem new SoundSystem();}public void watchMovie() {soundSystem.on();soundSystem.setVolume(10);dvdPlayer.on();dvdPlayer.play();}public void listenToCD() {soundSystem.on();soundSystem.setVolume(5);cdPlayer.on();cdPlayer.play();}public void turnOff() {dvdPlayer.off();cdPlayer.off();soundSystem.off();} }// 客户端代码 public class Main {public static void main(String[] args) {HomeTheaterFacade homeTheater new HomeTheaterFacade();homeTheater.watchMovie();homeTheater.listenToCD();homeTheater.turnOff();} }外观模式的运用场景 外观模式可以在多个实际应用场景中发挥重要作用。以下是几个常见的运用场景及其相应的代码示例。 1. 简化复杂系统 在电商系统中用户需要完成商品购买这可能涉及订单、商品、支付和会员等多个子系统。我们可以通过外观类来简化用户的操作。 示例代码 // 商品子系统 class ProductService {public void listProducts() {System.out.println(列出所有商品);} }// 订单子系统 class OrderService {public void createOrder(String product) {System.out.println(创建订单商品: product);} }// 支付子系统 class PaymentService {public void processPayment(String orderId) {System.out.println(处理订单支付订单ID: orderId);} }// 电商外观类 class ECommerceFacade {private ProductService productService;private OrderService orderService;private PaymentService paymentService;public ECommerceFacade() {productService new ProductService();orderService new OrderService();paymentService new PaymentService();}public void purchaseProduct(String product) {productService.listProducts();orderService.createOrder(product);paymentService.processPayment(12345);} }// 客户端代码 public class Main {public static void main(String[] args) {ECommerceFacade facade new ECommerceFacade();facade.purchaseProduct(手机);} }2. 减少客户端处理的系统数量 在 Web 应用中客户端可能需要处理多个系统的调用如数据库、业务对象等。通过创建一个 DAO 层作为门面可以简化这些操作。 示例代码 // 模拟数据库操作 class Database {public void connect() {System.out.println(连接数据库);}public void disconnect() {System.out.println(关闭数据库连接);}public String fetchData() {return 数据记录;} }// 业务对象 class BusinessModel {private String data;public BusinessModel(String data) {this.data data;}public void display() {System.out.println(业务数据: data);} }// DAO层 class DataAccessFacade {private Database database;public DataAccessFacade() {database new Database();}public BusinessModel getBusinessModel() {database.connect();String data database.fetchData();database.disconnect();return new BusinessModel(data);} }// 客户端代码 public class Main {public static void main(String[] args) {DataAccessFacade dataAccess new DataAccessFacade();BusinessModel model dataAccess.getBusinessModel();model.display();} }3. 让一个系统为多个系统工作 线程池是外观模式的另一个典型应用它为系统提供统一的线程管理接口使得线程的创建和使用变得简单。 示例代码 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;// 线程池外观 class ThreadPoolFacade {private ExecutorService executorService;public ThreadPoolFacade(int poolSize) {executorService Executors.newFixedThreadPool(poolSize);}public void executeTask(Runnable task) {executorService.execute(task);}public void shutdown() {executorService.shutdown();} }// 客户端代码 public class Main {public static void main(String[] args) {ThreadPoolFacade threadPool new ThreadPoolFacade(5);for (int i 0; i 10; i) {final int taskId i;threadPool.executeTask(() - {System.out.println(执行任务 taskId);});}threadPool.shutdown();} }总结 外观模式通过提供一个统一的接口简化了复杂系统的使用减少了客户端与多个子系统之间的直接交互。在电商系统、数据库访问和线程管理等场景中外观模式都能有效提高系统的可维护性和可读性。合理运用外观模式可以显著提升开发效率和用户体验。
http://www.hkea.cn/news/14387178/

相关文章:

  • 长春电商网站建设公司排名wordpress底部自定义
  • 天津河东做网站哪家好网站个人备案百度推官
  • wordpress软件网站模板建站宝盒里的手机网站
  • 衡水精品网站建设报价上海公司查询网站
  • 做熊猫tv网站的目的自己的网站做app
  • 三网合一的模板网站关于网站制作的指标
  • 青岛网站建设q.479185700強网站内页降权 关键词排名下降
  • 做课宝官方网站哪个nas可以做网站
  • 生成图片的网站网站优化内链怎么做
  • wordpress网站登录被篡改深圳vi设计公司全力设计
  • 厦门 外贸网站dw网站站点正确建设方式
  • 站长统计app进入网址凡客诚品什么档次
  • 杭州专业网站设计制作辽宁企业网站建设
  • gta5 网站正在建设中织梦网站背景音乐
  • delphi 可做网站吗手机图片编辑器
  • 知名网站建设联系电话大淘客网站开发
  • 长春做网站qianceyun福田做网站公司怎么选
  • 爱站网怎么用天猫注册店铺流程及费用
  • 广东省住房城乡建设厅官方网站应用软件设计过程
  • 商务网站建设一万字forpress wordpress wp
  • 网站如何paypal支付网站空间如何申请
  • 视频网站建设 方案广州sem代运营推广公司
  • 网站建设比较合理的流程是如何让网站做网页适配
  • 自己动手的网站深圳外贸建站模板
  • 网站建设怎么骗人wordpress 新浪微博
  • 北京建设工程质量总站网站专业的移动客户端网站建设
  • 做彩铃的网站济南网站建设公司电子商务网站
  • 网站所有权问题做个网站需要多少钱?有没有旧装修要拆
  • ppt网站建设答案电器网站模板
  • 网站流量功能更怎么做淘宝seo关键词的获取方法有哪些