Matlab外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。本文以计算机为例,用Matlab代码实现外观模式。计算机包括CPU、内存以及硬盘等这些部件。用户在操作计算机时,不需要了解计算机部件的使用方法,只需要操作计算机的按钮,计算机部件交给计算机内部去做即可。这样降低了用户操作的复杂性。
CPU.m
classdef CPU
methods
function startup(~)
disp("CPU is on");
end
function shutdown(~)
disp("CPU is off");
end
end
end
Memory.m
classdef Memory
methods
function startup(~)
disp("Memory is on");
end
function shutdown(~)
disp("Memory is off");
end
end
end
Disk.m
classdef Disk
methods
function startup(~)
disp("Disk is on");
end
function shutdown(~)
disp("Disk is off");
end
end
end
Computer.m
classdef Computer
properties
cpu
mem
disk
end
methods
function obj = Computer()
obj.cpu = CPU();
obj.mem = Memory();
obj.disk = Disk();
end
function startup(obj)
obj.cpu.startup();
obj.mem.startup();
obj.disk.startup();
disp("Computer is on");
end
function shutdown(obj)
obj.disk.shutdown();
obj.mem.shutdown();
obj.cpu.shutdown();
disp("Computer is off");
end
end
end
测试代码
computer = Computer();
computer.startup();
computer.shutdown();
Matlab外观模式的更多相关文章
- 设计模式(八): 从“小弟”中来类比"外观模式"(Facade Pattern)
在此先容我拿“小弟”这个词来扯一下淡.什么是小弟呢,所谓小弟就是可以帮你做一些琐碎的事情,在此我们就拿“小弟”来类比“外观模式”.在上面一篇博文我们完整的介绍了“适配器模式”,接下来我们将要在这篇博客 ...
- 设计模式(十一)外观模式(Facade Pattern)
一.引言 在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ...
- 每天一个设计模式-2 外观模式(Facade)
每天一个设计模式-2 外观模式(Facade) 1.生活中的示例 客户想要购买一台电脑,一般有两种方法: 1.自己DIY,客户需要知道组成电脑的所有电子器件,并且需要熟悉那些配件,对客户要求较高. ...
- 设计模式--外观模式Facade(结构型)
一.外观模式 外观模式提供了一个统一的接口,用来访问子系统中的一群接口.外观模式定义了一个高层接口,让子系统更容易被使用. 二.UML图 三.例子 举个编译器的例子,假设编译一个程序需要经过四个步骤: ...
- Objective-C 外观模式--简单介绍和使用
外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用. 在以下情况下可以考虑使用外观模式: (1)设计初期阶段,应该有意识的将不同层分 ...
- C#设计模式-外观模式
在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ”门面“模 ...
- C#设计模式系列:外观模式(Facade)
外观模式主要解决的问题是:当我们有多个类要处理时,往往要一个类一个类地区调用,没有复用性和扩展性.外观模式通过定义一个界面,把处理子类的过程封装成操作,主要就把用户从复杂的调用过程中解放出来. 1.外 ...
- 装饰模式 - Decorator 和 外观模式 - Facade
装饰模式 Decorator,不改变接口但动态给对象加入责任,所需功能按顺序串联起来控制,比生成子类灵活. 外观模式 Facade,让接口更简单.为子系统中的一组接口提供一个一致的界面. 参考:
- java设计模式之外观模式
外观模式概念 外观模式又称为门面模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个搞层次接口,使得这一个子系统更加容易使用.这一模式完美的体现了依赖倒转原则和迪米特法则的思想,所以是非常常 ...
随机推荐
- IT项目经理都需要具备哪些能力
发布时间:05-2009:24优质原创作者 项目经理是IT行业中比较常见的职位,工作职责主要包括三个方面,其一是资源整合任务:其二是沟通协调任务:其三是保障项目的时间周期. 资源整合能力是项目经理的重 ...
- Java NIO Buffer详解
一.ByteBuffer类型化的put与get方法 /** * ByteBuffer类型化的put与get方法 */ public class NioTest5 { public static voi ...
- python confluent kafka客户端配置kerberos认证
kafka的认证方式一般有如下3种: 1. SASL/GSSAPI 从版本0.9.0.0开始支持 2. SASL/PLAIN 从版本0.10.0.0开始支持 3. SASL/SCRAM-SHA- ...
- Chrome:不受信任的证书----openssl签发带Subject Alternative Name的证书
Chrome下自签名证书提示无效的问题 发现chrome验证证书很严格,必须带有Subject Alternative Name.签发csr时,修改openssl.cnf : vi /etc/ssl/ ...
- PHPUnit 单元测试教程
一.官网下载对应 PHP 版本的代码库 https://phpunit.de/getting-started-with-phpunit.html 二.安装 PHPUnit 官网提供了两种方法安装 1. ...
- Java13新特性 -- 新增 移除 废弃 已知问题等
新增 添加FileSystems.newFileSystem(Path, Map<String, ?>) Method 新的java.nio.ByteBuffer Bulk get/put ...
- Ubuntu16.04安装CDH
官方参考文档: https://www.cloudera.com/documentation/enterprise/5-15-x/topics/configure_cm_repo.html 安装cdh ...
- 【NPDP笔记】第五章 工具与度量
5.1 创意工具 Ideation 创意开发 创意工具 Scamper Substitute Combine Adapter Modify Put to another use Eliminate ...
- Linux下安装配置rocketmq
1.安装jdk,如果系统有原来的系统自带的先删掉,因为很多库不全,自己需要到jdk官网下载包. 卸载CentOS自带的OpenJdk: [root@centos-lx /]# rpm -qa | gr ...
- socks5 代理服务器ss5配置
安装 yum install pam-devel openldap-devel openssl-devel yum -y install gcc automake make pam-devel ope ...