C#编程模式之外观模式

        创作背景:给位伙伴,五一小长假结束,我们继续对C#编程之路进行探索。本文将继续编程模式的研究,主要介绍外观模式。外观模式也称为门面模式,是一种结构型设计模式,它的目的是为子系统中的一组接口提供一个统一的高层接口,使各子系统更容易使用。它隐藏了子系统的复杂性,方便使用者访问。

        外观模式主要有两大部分组成,一个是外观,即高层可访问的接口类;一个是子系统,即实现具体功能的部分,通常包括多个类和接口。

        具体的实现代码如下:

        1、创建子系统。

    /// <summary>
    /// 子系统1
    /// </summary>
    public class SubsystemsOne
    {
        public string MethodOne()
        {
            return "子系统One的方法";
        }
    }
    /// <summary>
    /// 子系统2
    /// </summary>
    public class SubsystemsTwo
    {
        public string MethodTwo()
        {
            return "子系统Two的方法";
        }
    }
    /// <summary>
    /// 子系统3
    /// </summary>
    public class SubsystemsThree
    {
        public string MethodThree()
        {
            return "子系统Three的方法";
        }
    }

        2、创建外观。

    /// <summary>
    /// 外观
    /// </summary>
    public class Facade
    {
        private SubsystemsOne subsystemsOne;
        private SubsystemsTwo subsystemsTwo;
        private SubsystemsThree subsystemsThree;

        public Facade()
        {
            subsystemsOne = new SubsystemsOne();
            subsystemsTwo = new SubsystemsTwo();
            subsystemsThree = new SubsystemsThree();
        }

        public string MethodA()
        {
            return "\r\nMethodA---\r\n" + subsystemsOne.MethodOne() + "\r\n" + subsystemsTwo.MethodTwo();
        }

        public string MethodB()
        {
            return "\r\nMethodB---\r\n" + subsystemsThree.MethodThree() + "\r\n" + subsystemsTwo.MethodTwo();
        }

    }

        3、客户端调用。

        /// <summary>
        /// 外观模式
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_facade_Click(object sender, EventArgs e)
        {
            Facade.Facade facade = new Facade.Facade();
            tbox_facade.Text = facade.MethodA();
            tbox_facade.Text += facade.MethodB();
        }

        4、实现效果图。

        以上就是关于外观模式的一些浅显理解,以及简单的示例代码。欢迎给位伙伴一起学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/595586.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【隧道篇 / WAN优化】(7.4) ❀ 01. 启动WAN优化 ❀ FortiGate 防火墙

【简介】几乎所有的人都知道&#xff0c;防火墙自带的硬盘是用来保存日志&#xff0c;以方便在出现问题时能找到原因。但是很少的人知道&#xff0c;防火墙自带的硬盘其实还有另一个功能&#xff0c;那就是用于WAN优化。 防火墙自带的硬盘 在FortiGate防火墙A、B、C、D系列&…

oracle 8i系统检查

oracle 8i系统检查 set echo on spool d:\bk\1.txt select sysdate from dual; --版本信息 select * from v$version; --安装的产品 col PARAMETER for a50; col value for a10; select * from v$option order by 2; --用户信息 set linesize 100 set pagesize 100 COL USE…

景源畅信:抖音运营做什么工作内容?

在如今这个信息爆炸的时代&#xff0c;抖音已经成为了人们生活中不可或缺的一部分。无论是消磨时间、获取信息还是展示自我&#xff0c;抖音都扮演着重要的角色。那么&#xff0c;作为抖音运营&#xff0c;他们需要做些什么呢? 一、内容策划与制作 抖音运营的首要任务就是内容…

爬虫Python库Requests

一、介绍 Requests 是一个强大的 Python 库&#xff0c;用于发送 HTTP 请求。它使得与 RESTful API 进行交互变得非常简单。Requests 可以通过 GET、POST、PUT、DELETE 等方法发送各种类型的请求&#xff0c;并且支持自定义 HTTP 头、请求参数、数据、cookies 等。 使用 Requ…

MCM箱模型实践技术应用与O3形成途径、生成潜势、敏感性分析

目前&#xff0c;大气臭氧污染成为我国“十四五”期间亟待解决的环境问题。臭氧污染不仅对气候有重要影响&#xff0c;而且对人体健康、植物生长均有严重损害。为了高效、精准地治理区域大气臭氧污染&#xff0c;需要了解臭氧生成的主要途径及其前体物。OBM箱模型可用于模拟光化…

武汉星起航:跨境电商领域国际竞争力卓越,引领行业再上新台阶

在全球化浪潮的推动下&#xff0c;跨境电商行业日益成为各国经济交流与合作的重要桥梁。武汉星起航电子商务有限公司&#xff0c;作为跨境电商领域的佼佼者&#xff0c;凭借其深厚的行业经验和前瞻性的战略视野&#xff0c;在国际市场上展现出强大的竞争力&#xff0c;为行业的…

优化理论复习——(二)

本篇主要介绍一下LP问题及其相关的解法和示例&#xff0c;主要是记住相关的方法和结论即可&#xff0c;不要求证明。 方法主要是单纯形法&#xff0c;同时对于初始基可行解确定方面使用了大M法和二阶段法。主体都是关于单纯形法的。 首先认识一下线性规划的一般问题形式&#x…

报错,java: 程序包sun.misc不存在

错误描述 down下来一个项目&#xff0c;编译的时候报错&#xff0c;提示sun.misc包不存在&#xff0c;通过百度得知&#xff0c;原来这是jdk8中的jar包&#xff0c;在后来的版本中被移除了&#xff08;我用的jdk11&#xff0c;没有这个包&#xff09; 结局方法 1.更换jdk版本&…

知识库工具:付费的HelpLook AI知识库比免费的牵牛易帮好在哪里

在知识管理的领域中&#xff0c;选择合适的知识库工具对于企业来说很重要。市面上有很多知识库产品&#xff0c;有付费的和免费的&#xff0c;但是还是有很多企业会选择使用付费的&#xff0c;而不是免费的。这是为什么呢&#xff1f;这就是今天要探讨的问题&#xff0c;下面就…

vs配置cplex12.10

1.创建c空项目 2.修改运行环境 为release以及x64 3.创建cpp文件 4.鼠标右键点击项目中的属性 5.点击c/c&#xff0c;点击第一项常规&#xff0c;配置附加库目录 5.添加文件索引&#xff0c;主要用于把路径导进来 6.这一步要添加的目录与你安装的cplex的目录有关系 F:\program…

idea2023.2.5的控制台动态配置当前环境

一、idea2023.2.5的控制台动态配置当前环境 1.1、idea版本 1.2、配置方式 1.2.1、方式一 1.2.2、方式二 1.3、参考 https://blog.csdn.net/xiaoheihai666/article/details/127757658

举个栗子!Minitab 技巧(8):用 PLS 偏最小二乘分析大豆脂肪影响因素

在上一个 &#x1f330; 中&#xff0c;我们用 Minitab 最小二乘法验证了两个变量&#xff08;单位桶数与运输时间&#xff09;之间是否存在某种关系。那么&#xff0c;在更复杂的场景中&#xff0c;如何验证一组预测变量和一个或多个连续响应变量之间的关系&#xff1f; 假设…

Pandas入门篇(三)-------数据可视化篇2(pandas-plot篇)

目录 概述一、格式1. 生成pandas.plotting对象来生成图表2. 调用plot()函数来生成图表3.支持的图表类型 二、单变量绘图常用图表1. 柱状图&#xff08;bar&#xff09;使用场景代码实现 2. 折线图&#xff08;line&#xff09;&#xff08;默认即为折线图&#xff09;适用场景代…

体育老师工资高吗,奖金有吗

教师的薪资水平与多种因素相关&#xff0c;包括教育经验、工作地点、学校类型以及个人的教学成果等。在讨论体育教师的工资问题时&#xff0c;不能仅仅关注数字&#xff0c;更应了解教育价值和个人发展。 初中体育教师的工资水平受多种因素影响。根据网络统计的数据&#xff0c…

[Spring Cloud] (6)gateway整体加解密

文章目录 简述整体效果后端增加配置nacos增加配置GlobalConfig 添加请求整体解密拦截器DecryptionFilter添加响应整体解密拦截器EncryptionFilter 前端请求拦截器添加整体加密逻辑请求头中添加sessionId 响应拦截器添加整体解密逻辑 简述 本文网关gateway&#xff0c;微服务&a…

阅读欣赏推荐之(七)——纪录片《一根绳子有多长》

《一根绳子有多长》是英国广播公司&#xff08;BBC&#xff09;在2009年出品的纪录片&#xff0c;这部纪录片以一跟绳子作为主角&#xff0c;通过运用现代科技手段&#xff0c;结合历史学、文化学、物理学等多个领域的知识&#xff0c;对绳子进行了全方位的研究。在古代&#x…

诺基亚贝尔探访上海斯歌,共探创新合作新机遇

近日&#xff0c;上海斯歌K2 BPM迎来重要客户考察交流活动。来自诺基亚贝尔的首席数字官刘少勇一行莅临了上海斯歌K2 BPM 的武汉研发中心&#xff0c;并对上海斯歌在BPM业务流程管理领域的研发成果及交付能力给予了高度肯定。 此次活动不仅加深了双方的战略合作&#xff0c;也为…

flask 前后台文件多张图片api;streamlit、gradio多图片页面展示

1、flask 前后台文件多张图片api send_file 传递zip&#xff1a; send_file(zip_data, mimetype‘application/zip’, as_attachmentTrue, download_name‘images.zip’) from flask import Flask, Response, request,send_file from PIL import Image import torch import i…

数据库大作业——基于qt开发的图书管理系统 (一)环境的配置与项目需求的分析

前言 博主最近数据库原理结课要做课程设计了,要求开发基于数据库实现的图书管理系统&#xff0c;博主想了想决定做一个基于Qt的图书管理系统,博主在此之前其实也没有用过多少Qt&#xff0c;仅以此专栏记录博主学习与开发的全过程&#xff0c;大家一起学习&#xff0c;一起进步…

使用固定公网地址远程访问开源服务器运维管理面板1Panel管理界面

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器&#xff0c;包括主机监控、…
最新文章