Java基于外观模式实现美食天下食谱功能实例详解

作者:chengqiuming 时间:2022-08-22 22:59:51 

本文实例讲述了Java基于外观模式实现美食天下食谱功能。分享给大家供大家参考,具体如下:

一、模式定义

外观模式,是软件工程师常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口,使子系统更容易使用。外观模式通过一个外观接口读/写子系统中的各接口的数据资源,而客户可以通过外观接口读取内部资源库,不与子系统产生交互。

二、模式举例

1. 模式分析

我们借用美食天下菜谱中制作糖醋排骨这一道菜来说明这一模式。

Java基于外观模式实现美食天下食谱功能实例详解

2. 外观模式静态类图

Java基于外观模式实现美食天下食谱功能实例详解

3. 代码示例

3.1 创建糖醋排骨接口一ISpareribs


package com.demo.common;
/**
* 糖醋排骨接口
*
* @author
*
*/
public interface ISpareribs {
 // 准备材料
 public void prepair();
 // 腌制排骨
 public void preserve();
 // 炸排骨
 public void fry();
 // 调汁
 public void juice();
}

3.2 糖醋排骨实现类一Spareribs


package com.demo.common;
/**
*
* 糖醋排骨实现类
*
* @author
*
*/
public class Spareribs implements ISpareribs {
 // 准备材料
 @Override
 public void prepair() {
   System.out.println("1.准备猪排骨500克,葱末、姜末、酱油、花生油、白糖、醋、料酒、盐各适量...");
 }
 // 腌制排骨
 @Override
 public void preserve() {
   System.out.println("2.将排骨洗净剁成3厘米长段,用开水汆一下,捞出放盆内,加入盐、酱油腌入味...");
 }
 // 炸排骨
 @Override
 public void fry() {
   System.out.println("3.炒锅注油烧至六成热,下排骨炸至淡黄色捞出;油温加热至八成,再下锅炸至金黄色捞出...");
 }
 // 调汁
 @Override
 public void juice() {
   System.out
       .println("4.炒锅留少许油烧热,下入葱花,姜末爆香,加入适量清水、酱油、醋、白糖、料酒、倒入排骨,烧开后用慢火煨至汤汁浓,排骨熟,淋上熟油,出锅即可!");
 }
}

3.3 创建外观接口一ICookFacade


package com.demo.facade;
/**
* 外觀模式制作糖醋排骨
*
* @author
*
*/
public interface ICookFacade {
 // 做糖醋排骨
 public void cookSpareribs();
}

3.4 外观实现一CookFacade


package com.demo.facade;
import com.demo.common.ISpareribs;
import com.demo.common.Spareribs;
/**
* 外觀模式制作糖醋排骨
*
* @author
*
*/
public class CookFacade implements ICookFacade {
 // 糖醋排骨排骨接口
 private final ISpareribs spareribs = new Spareribs();
 // 做糖醋排骨
 public void cookSpareribs() {
   // 准备材料
   this.spareribs.prepair();
   // 腌制排骨
   this.spareribs.preserve();
   // 炸排骨
   this.spareribs.fry();
   // 调汁
   this.spareribs.juice();
 }
}

3.5 客户端测试


package com.demo;
import com.demo.facade.CookFacade;
import com.demo.facade.ICookFacade;
/**
* 客户端应用程序
*
* @author
*
*/
public class Client {
 public static void main(String[] args) {
   // 开始做糖醋排骨了!
   System.out.println("==== 开始做糖醋排骨...");
   // // 创建糖醋排骨对象实例
   // ISpareribs spareribs = new Spareribs();
   // // 准备材料
   // spareribs.prepair();
   // // 腌制排骨
   // spareribs.preserve();
   // // 炸排骨
   // spareribs.fry();
   // // 调汁
   // spareribs.juice();
   ICookFacade cookFacade = new CookFacade();
   cookFacade.cookSpareribs();
   System.out.println("==== 糖醋排骨制作完成!");
 }
}

4. 运行结果

==== 开始做糖醋排骨...
1.准备猪排骨500克,葱末、姜末、酱油、花生油、白糖、醋、料酒、盐各适量...
2.将排骨洗净剁成3厘米长段,用开水汆一下,捞出放盆内,加入盐、酱油腌入味...
3.炒锅注油烧至六成热,下排骨炸至淡黄色捞出;油温加热至八成,再下锅炸至金黄色捞出...
4.炒锅留少许油烧热,下入葱花,姜末爆香,加入适量清水、酱油、醋、白糖、料酒、倒入排骨,烧开后用慢火煨至汤汁浓,排骨熟,淋上熟油,出锅即可!
==== 糖醋排骨制作完成!

三、该模式设计原则

1 迪米特法则——最小知识原则

2 封装变化部分

Java基于外观模式实现美食天下食谱功能实例详解

该图进一步展示了客户端应用程序,外观模式和子系统内部复杂应用三者的关系.

四、使用场合

1. 一个软件系统的复杂度比较高,需要一个更高级别的简单接口简化对子系统的操作时。

2. 当使用端与实现类之间有太多的依赖性,需要降低使用端与子系统或子系统间的耦合性,增加子系统的独立性时。

3. 当子系统是相互依存的,需要层级化子系统,简化子系统之间的相依性的时候,可以使用外观模式。

五、外观模式静态类图

Java基于外观模式实现美食天下食谱功能实例详解

希望本文所述对大家java程序设计有所帮助。

来源:https://blog.csdn.net/chengqiuming/article/details/70139355

标签:Java,外观模式
0
投稿

猜你喜欢

  • Android Init进程对信号的处理流程详细介绍

    2022-10-25 18:03:31
  • Spring Security使用中Preflight请求和跨域问题详解

    2021-06-12 11:04:15
  • 解决Android平台中应用程序OOM异常的方法

    2023-07-29 09:45:17
  • word ppt excel文档转换成pdf的C#实现代码

    2022-10-10 16:51:54
  • Android 中 Tweened animation的实例详解

    2022-12-12 15:28:06
  • C#基于正则表达式删除字符串中数字或非数字的方法

    2021-07-12 17:27:44
  • SpringBoot2 参数管理实践之入参出参与校验的方式

    2022-12-25 02:44:30
  • Android实现内存中数据保存到sdcard的方法

    2022-06-12 21:02:09
  • C++数据结构与算法之判断一个链表是否为回文结构的方法

    2023-04-15 18:46:27
  • 一篇超详细的SpringBoot整合MybatisPlus的文章

    2023-02-26 11:04:35
  • Android使用Retrofit上传文件功能

    2022-08-28 08:42:38
  • Android利用手势完成屏幕密码锁功能

    2023-04-08 21:21:40
  • 如何将默认的maven仓库改为阿里的maven仓库

    2022-09-30 14:16:31
  • SpringBoot2.x 集成 Thymeleaf的详细教程

    2021-07-31 18:18:23
  • android TextView加下划线的方法

    2023-09-11 01:12:36
  • C# WPF 自定义按钮的方法

    2021-08-30 23:42:11
  • java语法糖之jdk迭代的新特性汇总

    2022-07-09 10:05:19
  • C#集合之队列的用法

    2022-11-24 16:15:38
  • 详解HDFS多文件Join操作的实例

    2023-09-20 07:44:14
  • Java通过XPath获取XML文件中符合特定条件的节点

    2023-01-19 07:42:34
  • asp之家 软件编程 m.aspxhome.com