设计模式之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等众多网友提出的宝贵意见,因此我把程序做了一些修改,希望更能说明问题。大家的支持是对我的最好的鼓励,真心感谢!

【2023版】基于JT808/JT1078协议的车载视频监控平台开发实战-开源架构解析 本文详细解析了基于JT808/JT1078协议的车载视频监控平台开发实战,涵盖协议核心作用、开源架构设计、开发避坑指南及二次开发建议。重点介绍了JT1078协议在音视频传输中的优化方案,以及海量位置数据存储、高可用架构等关键技术点,为开发者提供全面的实战参考。 阅读详情

相关推荐

基于Yolo11的无人机小目标检测系统的设计与性能优化改进项目实现

该项目旨在开发一个基于YOLO11的无人机目标检测系统,能够实时识别并定位无人机拍摄过程中捕捉的小目标。考虑到无人机拍摄的目标通常较小,系统将采用特定的调优策略,以提高小目标的检测精度和召回率。

m0_73723097的博客 1205

c++组合类

c++组合类

m0_72500922的博客 441

Elasticsearch连接中断:深入解析Connection reset by peer问题及优化策略

本文深入解析Elasticsearch连接中断问题,特别是Connection reset by peer错误的成因与解决方案。从TCP层的心跳机制到客户端与服务端的配置差异,详细介绍了网络不稳定、防火墙拦截等常见原因,并提供了六种优化策略,包括KeepAlive调整、TCP参数调优和智能重试机制等,帮助提升Elasticsearch连接的稳定性。

weixin_42546392的博客 410

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

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

lxgljj的专栏 8041

NVIDIA驱动装好了,Gazebo为啥还是卡?手把手教你用optirun搞定GPU加速

本文详细解析了NVIDIA驱动安装后Gazebo仍卡顿的原因,并提供三步精准诊断与GPU加速实战方案。通过optirun快速启用GPU加速,解决OpenGL与显示服务器的配置问题,显著提升仿真性能。适用于ROS、PX4等开发环境,帮助用户充分利用显卡性能。

weixin_30379531的博客 465

构建个体结构脑网络的另一种方法

这篇文献提出了一种构建个体结构脑网络的方法即Morphometric INverse Divergence (MIND),通过T1像数据即可对每个被试构建一个脑网络,且通过多个特征进行构建而非单一的特征。即可获得由4个特征得到的个体结构网络矩阵,可以根据自己的需求采用不同的特征组合得到网络矩阵,也可以结合T1/T2像得到髓鞘化相关的网络矩阵,后续可修改代码批量处理自己的数据。这是文献贴出来的代码。在终端直接克隆到本地。2.修改路径运行代码。

weixin_52073820的博客 822

面向对象程序设计示例

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

qq_43432875的博客 1416

无人船 | 基于ROS的轻量级多无人艇自主导航仿真框架

无人水面艇USV是海上自主无人系统的关键组成部分,在民用、军用领域应用广泛,例如海上救援、水质测量、扫雷反潜等,因此对USV导航算法的研究具有重要意义。为了便于进行USV相关算法的验证与部署,本文介绍的这套基于ROS的多无人艇的自主导航仿真平台,轻量化地实现了建图、规划、控制等多种功能,同时自研框架保证了功能的高度可拓展和可定制

FRIGIDWINTER的博客 8002

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

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

珠穆朗玛小王子的博客 677

【AgentScope 2.0】01-不搭 demo,直接解剖一个生产级 Agent 平台:loser-agent 全链路地图

本文介绍生产级Agent平台loser-agent的完整请求旅程,从用户发消息到返回结果共七站:入口鉴权、灰度路由、Agent装配、模型路由、工具执行、持久化与流式响应。课程以真实源码为线索,深入剖析每一步实现逻辑,涵盖灰度发布、权限控制、HITL审批、多模态处理、状态持久化等核心能力。强调框架仅负责Agent运行时语义,平台自建管理请求生命周期中所有非框架部分,适合Java后端开发者系统掌握Agent工程化落地。

loser.with.m的博客 725

手把手教你学Simulink——无刷直流电机(BLDC)霍尔传感器(Hall Sensor)信号处理电路仿真

在中,转子位置靠​ 给出,换相逻辑(Commutation Table)据此决定。实际霍尔输出是,且常有:比较迟滞(内置或外加分压)RC 低通(防 EMI 尖刺)与 MCU 间想让你霍尔三相 UVW 理想方波(120° each, 换相每 60°elec)经观察:原始 HU/HV/HW、滤波后波形、整形后 TTL 电平验证换相表(001→100→010…)与转子转向匹配是破局关键。

amy_mhd的博客 38

家庭问题(信息学奥赛一本通-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

大模型——Ollama简明教程

在这篇文章中,我们将了解如何使用 Ollama、如何在 Ollama 中创建自己的模型 以及如何使用 Ollama 构建聊天机器人。这是深入研究 Ollama 的第一部分,以及我所学到的有关本地 LLM 的知识以及如何将它们用于基于推理的应用程序。在这篇文章中,你将了解——

1689

设计模式之Facade(家庭篇)

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

Net 421

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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

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

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

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

旅行人生 1003

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

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

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

weixin_44754751的博客 232

设计模式之外观模式(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、付费专栏及课程。

余额充值