设计模式之Facade——家庭篇

23种设计模式-外观(Facade)设计模式 软考中级-软件设计师 外观模式 阅读详情

今年十一国庆节,我呆在家里美美的享受了一下家的温馨。首先让我来介绍一下我的家庭成员:

妻子(Wife)

女儿(Daughter)

我(Me)

我们都是家庭(Family)的一分子,我们是以家庭对外的。就象我们国家对外是以“中国”,外国人都称我们是中国人,但在中国这个大家庭内部,包括了汉、回、蒙、。。。等56个民族一样。

可见对外我们是要以统一的身份,或叫统一的外观(Facade)进行展现。

好了言归正传。

1、  在这里,先定义家庭的各个成员类:

妻子(Wife):

public class Wife {

  protected Wife() {

    System.out.println("老婆伟大 !");

  }

}

女儿(Daughter):

public class Daughter {

  protected Daughter () {

    System.out.println("女儿可爱 !");

  }

}

我(Me):

public class Me {

  protected Me() {

    System.out.println("我爱我家 !");

  }

}

2、定义家庭对外展现(FamilyOutShow)类:

public class FamilyOutShow {

  public void MyFamily() {

    Wife myWife = new Wife();  //我的老婆

    Daughter myDaughter = new Daughter ();  //我的女儿

    Me me= new Me();  //我自己

  }

}

3、编写测试类:

public class MyFamilyTest {

  public static void main(String[] args) {

      FamilyOutShow myFamily = new FamilyOutShow ();

      myFamily.MyFamily();

  }

}

4、说明:

A:Facade的定义: 为子系统中的一组接口提供一个一致的界面。

B:使用统一对外接口,可以降低系统的复杂性,增加了灵活性。

C:从例子中可以看到,外界只是访问了家庭对外展现(FamilyOutShow)类,而没有直接与成员类打交道。这样比如说增加了一个新的成员类(比如说儿子(Son)类),只要修改家庭对外展现(FamilyOutShow)类即可,而不用修改调用。

      5、特别感谢:
       感谢windcsn、flyingwind、acdsee等众多网友提出的宝贵意见,因此我把程序做了一些修改,希望更能说明问题。大家的支持是对我的最好的鼓励,真心感谢!

常见js手撕题及算法总结 设计一个lazyMan,实现以下功能: LazyMan(‘Tony’); // Hi I am Tony LazyMan(‘Tony’).sleep(10).eat(‘lunch’); // Hi I am Tony // 等待了10秒… // I am eating lunch LazyMan(‘Tony’).eat(‘lunch’).sleep(10).eat(‘dinner’); // H... 阅读详情

相关推荐

Android系统编译之Communication error with Jack server (35), try ‘jack-diagnose‘ or see Jack server log

jack server failed场景个人分析网上分析分析1分析2原因1:权限问题原因2:端口占用原因3:删除 TLSv1, TLSv1.1测试结论解决方案说明相关链接 场景 在进行Android系统开发时,在liunx编译时发生问题,描述如下: ninja: build stopped: subcommand failed. build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed make: *** [ninja_wrapper

weixin_43194854的博客 2401

c++组合类

c++组合类

m0_72500922的博客 441

Ubuntu系统下STM32开发环境搭建:从零配置CubeMX、VSCode与OpenOCD调试实战

本文详细介绍了在Ubuntu系统下搭建STM32开发环境的完整流程,包括CubeMX、VSCode和OpenOCD的安装配置。通过实战教程指导开发者从基础环境准备到工程创建与调试,提供高效的嵌入式开发解决方案,并分享常见问题解决方法。

potato的博客 941

设计模式之Facade——家庭篇(原创)

设计模式之Facade——家庭篇 今年十一国庆节,我呆在家里美美的享受了一下家的温馨。首先让我来介绍一下我的家庭成员:妻子(Wife)女儿(Daughter)我(Me)我们都是家庭(Family)的一分子,我们是以家庭对外的。就象我们国家对外是以“中国”,外国人都称我们是中国人,但在中国这个大家庭内部,包括了汉、回、蒙、。。。等56个民族一样。可见对外我们是要以统一的身

lxgljj的专栏 8041

PX4从放弃到精通(十九):串口驱动

文章目录前言一、创建进程二、编写驱动 前言 硬件: PIXHAWK4 USB转串口模块 软件: Ubuntu18.04 PX4 1.11.3固件 QGC地面站 串口助手 一、创建进程 参考:https://mbot1.blog.youkuaiyun.com/article/details/122587617 二、编写驱动 .........

超维空间科技的博客 4598

rk3588主板PDM接口接数字MIC录音

本文介绍了Rockchip 3588平台上6麦克风PDM接口的硬件连接与软件调试过程。硬件方面展示了PDM0_CLK0_M0时钟脚和三组数据脚的连接方案。软件配置包括设备树修改,生成声卡节点,并提供了6通道录音命令示例。文章重点分析了两个常见问题:录音无声(需检查供电、接线和波形)和通道数据缺失(需正确配置rockchip,path-map寄存器映射)。最后通过Audition工具验证录音文件,确认各通道工作正常。调试过程完整展现了从硬件连接到软件配置的完整流程。

m0_60805802的博客 1014

面向对象程序设计示例

1.家庭中体育锻炼类的设计(据说某届DLUT期末考题) 分析: 主要有两个类 成员(Members)和 家庭(Family); 其中的成员类(Members)派生出多个子类:爸爸(Father)、妈妈(Mother)、儿子、隔壁老王、花Q等等,并且后续可以添加; 成员类(Members)中有一个纯虚函数 运动(sports),在其子类中有不同的实现方法; 家庭类(Family)中包含 ...

qq_43432875的博客 1416

YOLOv11半监督学习深度解析:基于FixMatch改进的先进目标检测框架

本文探讨了半监督学习与YOLOv11结合的创新方法。针对目标检测中半监督学习面临的伪标签质量不稳定、特征一致性难保证等挑战,研究提出改进版FixMatch框架。通过分析YOLOv11架构特性(如多尺度特征提取、双标签分配策略等)与半监督学习的适配性,设计了三项关键技术改进:空间感知阈值策略、多任务解耦处理和记忆增强机制。该方法在少量标注数据下可实现接近全监督的性能,显著降低工业检测等场景的数据标注成本。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 2082

设计模式大总结(一):组合模式

前言一不小心博客就已经停了8天了,为什么这么一不小心呢? 1、工作中遇到了一些比较蛋疼的难题。 2、最近这几天都在看Java Web开发。 3、懒,也不知道写什么。 于是想总结一下工作中对设计模式的理解和总结,今天就是开篇的:组合模式。正文组合模式听起来非常好理解,就是小时候我们搭积木,组装个四驱车这些东西。直接举个栗子:/** * 男人 */ public class Man{

珠穆朗玛小王子的博客 677

生成EtherCAT从站XML图片信息方法

详细介绍了EtherCAT从站XML文件中图片元素的生成方法。

kevin1499的博客 2128

液滴碰撞壁面的过程背景论文——bouncing反弹,spreading扩展,splashing飞溅。铺展过程介绍。还存在很多未解之谜。

【1993-德国-Phenomena of liquid drop impact on solid and liquid surfaces】液滴碰撞壁面的过程背景——bouncing反弹,spreading扩展,splashing飞溅。还存在很多未解之谜。还存在很多未解之谜。不同液滴形状碰撞过程。

qq_15963745的博客 199

家庭问题(信息学奥赛一本通-T1362)

【题目描述】 有n个人,编号为1,2,……n,另外还知道存在K个关系。一个关.系的表达为二元组(α,β)形式,表示α,β为同一家庭的成员。 当n,k和k个关系给出之后,求出其中共有多少个家庭、最大的家庭中有多少人? 例如:n=6,k=3,三个关系为(1,2),(1,3),(4,5) 此时,6个人组成三个家庭,即:{1,2,3}为一个家庭,{4,5}为一个家庭,{6}单独为一个家庭,第一个...

Alex_McAvoy的博客 5674

Python爬虫实战:逆向解析腾讯视频API,高效获取结构化视频信息

首先,我们定义期望获取的数据结构,这有助于数据验证和代码清晰度。python"""腾讯视频信息数据模型"""title: str = Field(..., description="视频标题")vid: str = Field(..., description="视频唯一ID")play_count: Optional[int] = Field(None, description="播放量")

2201_76125261的博客 2379

设计模式之Facade(家庭篇)

今年十一国庆节,我呆在家里美美的享受了一下家的温馨。首先让我来介绍一下我的家庭成员:           妻子( Wife )           女儿( Daughter )           我( My )           我们都是家庭( Family )的一分子,我们是以家庭对外的。就象我们国家对外是以“中国”,外国人都称我们是中国人,但在中国这个大家庭内部,包括了汉、回、蒙、。。。等

Net 421

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

设计模式之Facade——家庭篇(搞笑版)

今年十一国庆节,我呆在家里美美的享受了一下家的温馨。首先让我来介绍一下我的家庭成员:妻子(Wife)女儿(Daughter)我(Me)我们都是家庭(Family)的一分子,我们是以家庭对外的。就象我们国家对外是以“中国”,外国人都称我们是中国人,但在中国这个大家庭内部,包括了汉、回、蒙、。。。等56个民族一样。可见对外我们是要以统一的身份,或叫统一的外观(Facade)进行展现。好了言归正传。1、

旅行人生 1003

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C++设计模式之外观模式

外观模式(Facade):根据迪米特法则,如果两个类不必彼此之间通信,那么这两个类就不应当发生相互作用 class TV{ public: void On(){ cout << "电视机打开" <<endl; } void Off(){ cout << "电视机关闭" <<endl; } }; class Light{ public: void On(){ cout &l

weixin_44754751的博客 232

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

设计模式之外观模式(Facade)

Facade设计模式,也称为外观模式,是一种结构型设计模式,它主要用于为子系统中的一组接口提供一个统一的高层接口,从而使得子系统更加容易使用。

1479

C++设计模式:外观模式(Facade)(家庭影院案例)

外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个统一的接口,让客户端可以通过这个接口与系统内部的多个子系统交互,而不需要了解内部的复杂实现逻辑。

专注于 Qt/C++ 应用开发和机器视觉领域的开源项目分享。期待与您共同进步! 924

设计模式-Facade(门面模式)GO语言版本

个人理解Facade模式其实日常生活中已经不知不觉就在使用了,基本核心内容就是暴露一些简单操作的接口,实现上将一些内容封装起来。

dyxing_的博客 698

设计模式_外观模式_Facade

外观模式,也叫“过程模式”外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得各个子系统更加容易使用使用外观模式可以为互相关联在一起的错综复杂的类整理出高层接口(API)。其中的Facade角色可以让系统对外只有一个简单的接口(API)。而且,Facade 角色还会考虑到系统内部各个类之间的责任关系和依赖关系,按照正确的顺序调用各个类。定义一个一致的接口,用于屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。

皮球 1047

Java设计模式——外观模式【Facade Pattern】

Java设计模式、外观模式、Facade Pattern

scorpio的博客 560

23种设计模式——外观模式(Facade Pattern)详解

本文介绍了23种设计模式之——外观模式(Facade Pattern)的说明及使用

Meteors.的博客 1229

设计模式之外观模式详解(Facade Pattern)

基本介绍 外观模式(Facade),也叫“过程模式:外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节 原理类图 类图说明 外观类(Facade): 为调用端提供统一的调用接口, 外观类知道哪些子系统负责处理请...

Superman_peng的博客 356

设计模式中的外观模式(Facade Pattern)

在软件开发中,复杂系统往往由多个子系统组成,调用这些子系统的接口可能非常繁琐。如果直接让客户端与多个子系统交互,会导致代码复杂、耦合度高、维护困难。外观模式(Facade Pattern)提供了一种简化系统交互的方法,它通过定义一个**统一的接口,让客户端可以更方便地使用复杂子系统,而无需了解其内部细节。本文将详细介绍外观模式的概念、应用场景,并通过 Python 代码示例来展示其实现方式。

1316

【详解】浅谈JAVA设计模式外观模式(Facade)

外观模式是一种结构型设计模式,它提供了一个统一的接口来访问子系统中的一群接口。外观定义了一个高层接口,这个接口使得子系统更容易使用。简单来说,外观模式就是通过一个“门面”对象来简化客户端与子系统的交互过程,减少客户端对子系统内部组件的依赖。通过外观模式,我们将复杂的家庭影院系统简化为一个简单的接口 ​​,客户端只需调用 ​​ 和 ​​endMovie​​ 方法即可完成观看电影的操作,而无需关心每个设备的具体操作细节。这样不仅提高了系统的可维护性,也使得客户端的代码更加简洁和易于理解。

牛肉胡辣汤 1083
上一篇: 设计模式之Prototype——作业篇
下一篇: 设计模式之Decorator——家装篇
cyokin
博客等级 码龄24年 0粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值