PureMVC学习系列-从源码深度剖析PureMVC(从PureMVC中看设计模式-Facade门面模式)

PureMVC框架中文使用手册:结构化开发的利器 PureMVC框架的起源可以追溯到2006年,由Cliff Hall创建,旨在为开发人员提供一个轻量级、可扩展的架构,以遵循MVC(Model-View-Controller)设计模式。它起源于ActionScript 3,很快就被移植到多种编程语言中,包括Java。PureMVC的目的是通过提供一套清晰的指导原则和可重用的组件,来简化和加速基于MVC模式的应用程序的开发过程。PureMVC框架由四个主要的组件构成,分别是Model、View、Controller和Facade。 阅读详情

程序的设计模式,早在上学时就已经开始接触,而且在后来进行开发,设计,架构系统时,才发现设计模式的最高境界,便是“大道至简”。在最开始学习设计模式时最容易犯的错便是自以为了解设计模式,一个简单得系统,生搬硬套设计模式。俗不知,程序本来就是实现一个功能,架构出来的最初的雏形,虽然不得不考虑扩展,维护等工作,但是,最大的目的还是有计划的实现功能,一个完美的系统,并不完全是一开始就设计的非常完美,还有就是后来的完美的重构,关于重构,今天不想谈论太多,重点是说设计模式,重点是欣赏PureMVC的设计模式的巧妙使用。

       pureMVC用的设计模式很多,在使用设计模式的时候,需要考虑的是,是否有必要来使用这个模式,第一步该考虑的是抽象,将系统,抽象成子系统,子系统抽象成模块,模块里再细化到接口,到类,然后绘制UML图,寻找出需要修改的点。所以设计模式应该是一边重构,一边考虑使用的。

       在使用PureMVC的时候,我们只需要写一句代码便可以完成所有的组件的初始化

        

[javascript]  view plain copy print ?
  1. var myFacade:MyFacade = MyFacade.getInstance();  

      其实这个就是门面(Facade)模式,顾名思义,门面模式就是一个复杂子系统的门面,因为在系统架构时,往往是越来越复杂,到最后提供给其他系统调用时,关系过于复杂,如果不加以简化,到最后,代码的可读性就会大大的降低。试想下,如果一个要调用一个子系统系统时,必须先弄清楚子系统的各个组件的关系,这样不仅是让开发痛苦不堪,而且很容易增加系统的耦合度!

     门面模式其实就是为了简化子系统的调用关系,一般Facade类都是用来协调和简化子系统中各个组件的复杂调用关系 ,降低系统间因为调用关系而导致的耦合度增加的问题。

     通常子系统如果有以下情况出现,就可以考虑门面模式:

     1.各个组件调用关系复杂,需要简化。

     2.子系统和其他子系统的依赖性较大,需要降低耦合度。

     3.需要增强子系统的独立性

 

套用阎宏老师《java 与设计模式》中的一个示例说明:

 

 

        上面这个示例说的时一个安保系统,一个安保系统包含了Camera,Light,Sensor,Alarm组件。

         如果没有SecurityFacade,则在其他系统调用时,必须对各个组件进行实例化调用,这无疑会增加开发的难度,其实Facade相当于是一个复杂机器的操作面板,你只需要再操作面板上按下开关,操作面板会接通各个线路,多个零件同时工作,如果没有操作面板,你得先打开录像机,再打开警告灯,再拉响警报,你事很容易在事件发生时忘掉其中的一件事,所以有了Facade你只需要按下系统开关即可完成所有的工作。

         PureMVC中也是这样,数一下,初始化的时候他初始化了Controller,View,Model,这么多工作如果没有Facade光写代码也会增加很大的麻烦,势必影响框架的调用难易度,而Facade不光是完成的这些简单得操作,仔细看下PureMVC中的Facade完成了哪些工作。

 

 

        试想下,如果没有Facade,我们需要做哪些工作,首先我们需要在系统调用PureMVC时,就需要创建Controller、Model和View的实例,分别执行各个组件的InitialXX方法,而且Facade不仅有对外简化调用的作用,而且它负责保存管理对各个组件的引用。其他组件在使用时不需要再次创建它们的实例,从Facade即可方便取得。

从Simulink到Amesim:一份FMU联合仿真的避坑指南(含UDP通讯完整配置) 本文详细解析了从Simulink到Amesim的FMU联合仿真全流程,重点介绍了UDP通讯配置中的常见陷阱与解决方案。通过实战案例,帮助工程师规避编译器不兼容、步长设置冲突等典型问题,提升复杂系统仿真的效率与准确性。 阅读详情

相关推荐

Demo2Reward:用人类演示动态优化VLM奖励模型提示

多模态大模型(VLM)的奖励建模正面临核心瓶颈——静态提示导致语义鸿沟与泛化失效。其本质是将人类判断标准固化为不可更新的文本模板,使奖励信号脱离真实任务意图。Demo2Reward提出范式级改进:以结构化人类演示为元信号,驱动提示权重连续优化,实现从‘结果打分’到‘过程理解’的跃迁。该方法不修改VLM主干,却显著提升RLHF收敛效率与OOD鲁棒性,在医疗、工业质检等场景验证了跨任务迁移与热修复能力。它重新定义了提示工程的技术价值:不是前端微调,而是奖励系统的认知校准基础设施。

weixin_34302798的博客 408

pureMVC与设计模式之二. Facade模式与Singleton模式

引言 上篇文章,我们分析了pureMVC的结构以及工作流。从本文开始,将逐个解剖其中设计到的设计模式。我们先看facade模式和singleton模式。 一、pureMVC中的Facade模式 1. facade模式介绍 Façade模式的理论基础是迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就

cpfeed的专栏 3226

手把手教你用ROS2控制PX4无人机画个圆:从C++代码到Gazebo仿真全流程解析

本文详细解析了如何使用ROS2控制PX4无人机实现圆形轨迹飞行,涵盖从C++代码编写到Gazebo仿真的全流程。重点介绍了Offboard模式下的控制算法实现、圆形轨迹生成的数学原理,以及解决通信延迟和坐标系转换等常见问题的实用技巧。通过实战案例,帮助开发者快速掌握无人机轨迹跟踪仿真的核心技术。

weixin_30839881的博客 95

Pure MVC

1.概述 PureMVC就是在MVC的基础上新增了一些设计模式。有关MVC的就不多介绍了,简单说就是将功能模块分成三个部分Model(数据),View(视图),Controller(控制器,逻辑处理)。PureMVC在此基础上新增了Mediator来处理View,Command来处理Controller,Proxy来处理Model,同时还有Facade做一个整体管理,Notification用于相互通信(详细的后续介绍)。 2.设计模式 1.外观模式 1.主要作用是隐藏系统的复杂性,提供可以访问

drgfd345的博客 3107

hpm6750evk2开发板(四)TCP回送(1000M网口)

再接下来我们修改代码,先找到配置网速的地方,肯定是在enet的初始化函数里面,我们一个函数一个函数找,也可以用单步调试一步一步找,结果发现是在enet_init函数里面调用的rtl8211_basic_mode_default_config函数配置网速的,我们把enet_phy_port_speed_100mbps改为enet_phy_port_speed_1000mbps,重新编译运行试试。首先我们复制一份lwip_tcpecho代码,重命名为lwip_tcpecho_RGMII,如下图所示。

Silas1750的博客 920

从零开始理解二极管限幅:5种典型电路设计及实际应用场景解析

本文系统解析了二极管限幅电路的五大经典拓扑,包括串联与并联型上下限幅及双向限幅。通过剖析其核心原理与二极管的单向导电性、正向压降特性,结合ADC输入保护、电源管理、音频处理等实际应用场景,提供了从器件选型到设计陷阱规避的完整实战指南,帮助工程师为信号构建可靠的“安全笼”。

2y3u4i5o6p的博客 1034

[框架]PureMVC--Facade/通知源码

Façade MVC 元设计模式的核心元素在 PureMVC 中体现为 Model 类、View 类和 Controller 类。为了简化程序开发,PureMVC 应用了 Façade 模式。 Façade 是 Model、View 和 Controller 三者的“经纪人”。实际编写代码时你 并不用导入这三者的类文件,也不用直接使用它们。Façade 类已经在构造方法包含了对核心 MVC 三者单例的构造。 一般地,实际的应用程序都有一个 Façade 子类,这个 Façade 类对象负责初始 化 Cont

超越 1111

如何对EMB电子机械制动器的热衰退问题进行优化

摘要 电子机械制动器(EMB)在新能源汽车和自动驾驶中具有重要应用价值,但其在高强度工况下会出现热衰退现象。本文分析了EMB热衰退的五大机理:摩擦副热效应、电机热衰退、减速机构热失效、温度对控制策略干扰以及结构设计导致的热积累。针对这些问题,提出了从材料、结构、控制三个维度的优化措施:升级耐高温材料、改进散热设计、优化控制算法等。通过"热生成抑制-热传导优化-热失效补偿"的系统方案,可有效改善EMB的热衰退问题,为智能汽车提供更可靠的制动保障。

m0_59012156的博客 342

PureMVC在Unity中的使用(含下载链接)

PureMVC是一种基于模型-视图-控制器(MVC)模式的应用程序架构,旨在通过解耦和分离应用程序的不同部分,实现更好的代码组织和可维护性。在Unity游戏开发中,PureMVC框架的引入为开发者提供了一种高效、模块化的开发方式。

weixin_67674686的博客 2912

华为OD机考双机位C卷 - 两个字符串间的最短路径(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 两个字符串间的最短路径(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 834

国科大学习资料--高级软件工程-复习题选择题答案

国科大学习资料–高级软件工程(罗铁坚 魏峻 刘丹)-复习题选择题答案 ’‘

无名何许人的博客 1165

PureMVC学习系列-从源码深度剖析PureMVC(从PureMVC中看设计模式-Command命令模式) .

命令,出现在计算机中,是早就有的事,最典型的DOS系统就是命令模式最好的示例,大家输入一条指令给系统,系统就会完成一种操作,记得最早接触电脑时就是在初中的时候,Dos系统,没有鼠标,那个时候会电脑的人很少,完全明白电脑的老师就更是少得可怜,而且听说老师当时的工资是很多,受全校的尊敬。真是两重天啊,现在别说老师,就是真正的以电脑为生得人也难得生活了。       第一学期学校的电脑还没买来,老

1042

Java开发者终极抉择:IntelliJ IDEA vs VS Code —— 4大维度深度对比评测

🔥关注墨瑾轩,带你探索Java的奥秘!🚀🔥超萌技术攻略,轻松晋级编程高手!🚀🔥技术宝库已备好,就等你来挖掘!🚀🔥订阅墨瑾轩,智趣学习不孤单!🚀🔥即刻启航,编程之旅更有趣!🚀在Java开发领域,选择合适的集成开发环境(IDE)对于提高开发效率和代码质量至关重要。和(简称VS Code)是两个广受好评的开发工具,各自拥有独特的特性和庞大的用户群。本篇将从多个维度深入探讨这两款IDE对Java开发者来说的优劣,包括但不限于性能、用户体验、生态系统、调试能力、以及特定Java功能的支持等方面。

java专栏 8590

PureMVC学习系列-从源码深度剖析PureMVC(核心组件初始化)

第一次使用PureMVC时,觉得各个组件太过于繁琐,很难一下明白他们的含义。           看官方的文档,说的很详细,很清楚,但是很难一下真正的工作流程,到后来会用了,也不清楚。          今天有时间,于是决定调试下源码,揭开PureMVC的庐山真面目。

1090

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

PureMVC学习系列-从源码深度剖析PureMVC(核心组件工作流程及原理)

上午通过PureMVC的初始化,了解到了PureMVC部分核心组件的结构,总体来说,通过重载基类Facade的的构造方法,完成Controller,View,Model的初始化,同时明白各组件中的关系及结构,如下所示:         1.Facade作为整个系统的门面完成各个组件间的复杂关系的协调与组建,所以一个Facade中包含了对Contrller,View,Model以及Comman

787

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

PureMVC框架介绍

PureMVC是基于MVC模式(模型、视图和控制器)建立的一个轻量级应用框架。 在PureMVC实现的经典MVC设计模式中,模型、视图和控制这三部分由三个单例模式类管理,分别是Model、View和Controller。三者合称为核心层或核心角色。 PureMVC中还有另外一个单例模式类——Facade。Facade提供了与核心层通信的唯一接口,以简化开发复杂度。 M

做好自己 3774

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

PureMVC使用

MVC MVC全名是Model View Controller,是模型(Model)-视图(View)-控制器(Controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑集中到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。...

fwb7014的博客 502

关于PureMVC的个人理解与实现

这是一个工具类可有可无,根据自己实际情况取舍using UnityEngine;using System.Collections;/// <summary>/// 获取场景中的对象[设置场景中对象]/// </summary>public class GameUtility{ /// <summary> /// 获取子节点 /// &l...

W低小调W的博客 6861

PureMVC

主要的设计模式 目录结构

weixin_33950757的博客 857

[Unity框架]PureMVC在unity中的简单使用

效果图:

宏哥的博客 1万+

如何使用javascript的PureMVC框架 - 初始化

相信写Flex的人都知道PureMVC框架,本人之前就有段时间一直在用它,总体感觉还算不错。 PureMVC实现了经典MVC元设计模式,这三部分由三个单例模式类管理, 分别是Model、View和Controller。三者合称为核心层或核心角色。   PureMVC中还有另外一个单例模式类——Facade,Facade提供了与核心层通信的唯一接口,以简化开发复杂度。 PureMVC使用No

cocos2d-x 学习之路 4820

PureMVC 实例讲解

http://puremvc.org/content/view/98/189/Model负责映射Notification 到 proxy。View负责映射Notification 到 Mediator。其他可能只映射1V1,View可能映射多个Notification到一个Mediator。每个Mediator对应一个显示控件或多个(引用他们的父控件)。其他是直接映射,而是View为每个Mediator生成一个Observer,实际是映射到这个Observer。Controller负责映射Notificat

~。~||| 4296

pureMVC简单示例及其原理讲解——Facade

pureMVC简单示例及其原理讲解 ——Facade pureMVC是一个MVC框架,核心部分包括Proxy、Mediator、Command和Facade,Facade同意管理前三个核心部分。   上一篇我们讲解了本示例中的Controller层,Controller层中包含添加用户命令、删除用户命令、注册View层的命令、注册Model层的命令和一个复合命令注册所有的这些和添加/删除用...

superwulei的专栏 360

ibatis 打印sql出来 log4j.xml与log4j.properties两种方式

直接上代码 第一种  log4j.xml  也是与spring集成常用的方式 把原来的xml文件备份好,把这个整个贴进去,就ok了                                                                              

4872

linux卸载,安装win7碰到的问题总结,使用MbrFix.exe修复mbr

卸载笔记本电脑自带的红旗linux之后出现的问题。 error:unknown filesystem grub rescue> 从网上找了一堆的原因,结果都是copy的 最后找了一个比较靠谱,自己亲测成功。 先说下我的过程 新买的笔记本电脑自带的红旗linux系统 自己不想用了,要改成 win7系统 一开始用u盘上安装的老毛桃启动项 找了好几种启动winPE的方

2457
上一篇: JAVA操作properties文件
下一篇: PureMVC学习系列-从源码深度剖析PureMVC(从PureMVC中看设计模式-Command命令模式) .
method_chen
博客等级 码龄15年 25粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

method_chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值