当前位置: 首页 > news >正文

遵义网站建设推广桂林人论坛app

遵义网站建设推广,桂林人论坛app,南京小程序开发网站制,seo入门黑帽培训教程文章目录 前言MVC架构模式基本概念通信方式简单应用 总结 前言 “MVC”#xff0c;即Model#xff08;模型#xff09;#xff0c;View#xff08;视图#xff09;#xff0c;Controller#xff08;控制器#xff09;,MVC模式是架构模式的一种。 关于“架构模式”即Model模型View视图Controller控制器,MVC模式是架构模式的一种。 关于“架构模式” 架构模式Architectural Pattern是软件架构中常见的组织结构解决方案用于指导大型软件系统的设计。它们描述了软件系统常见的组织结构和它们之间的相互关系为构建复杂软件系统提供了经验证的解决方案。架构模式提供了一种通用的、可重用的解决方案来处理在软件设计中遇到的常见问题。 常见的架构模式包括 1.分层模式Layered Pattern 将系统分割成多个层次每一层提供特定的服务并且只与相邻层次通信。例如一个典型的三层架构包括表示层用户界面、业务逻辑层和数据访问层。 2.客户端-服务器模式Client-Server Pattern 系统分为两部分服务器提供服务客户端请求服务。这种模式广泛应用于网络应用程序。 3.模型-视图-控制器模式Model-View-Controller Pattern, MVC 用于实现用户界面的分离关注点将应用程序分为三个核心组件模型数据和业务逻辑、视图用户界面和控制器业务逻辑和用户界面之间的通信。 4.管道-过滤器模式Pipeline-Filter Pattern 在这种模式中每个处理步骤过滤器作为数据流管道中的一个阶段数据流从一个过滤器流向下一个过滤器。 5.事件驱动架构模式Event-Driven Pattern 系统作为一系列异步事件和回调处理函数的集合。这种模式适用于需要高响应性和可伸缩性的应用。 6.微内核模式Microkernel Pattern 系统的核心功能由一个小型的、可扩展的内核提供其他功能则作为插件或模块附加在内核周围。 7.代理模式Proxy Pattern 为其他对象提供一个代理或占位符以控制对这个对象的访问。这在远程代理、虚拟代理和保护代理中很常见。 8.发布-订阅模式Publish-Subscribe Pattern 一种事件驱动的通信模式发布者发送事件而订阅者对这些事件做出响应但发布者和订阅者之间没有直接的联系。 9.黑板模式Blackboard Pattern 多个模块或组件通过一个共享的数据空间黑板进行通信和协作以解决复杂问题。 10.MVC的变体模式 包括表现层-业务逻辑层-数据访问层Presentation-Logic-Data Access, PLDA、模型-视图-视图模型Model-View-ViewModel, MVVM和模型-视图-适配器Model-View-Adapter, MVA等。 MVC架构模式 基本概念 ‘M’——模型(Model)视图类所需要的数据例如表格需要显示的文字。 ‘V’——视图(View)屏幕上显示的UI响应用户事件接受用户输入。例如按钮标签进度条等。 ‘C’——控制器(Controller)连接视图类和模型类任务是使数据显示在屏幕上主要负责转发请求对请求进行处理。例如控制器将表格需要使用的数据“填入”表格视图中将表格视图显示出来。 关于这三者的关系我参考了如下图例来理解 斯坦福大学的iOS公开课第一课 苹果官方的图解 在这里可以看出来“V”和“M”是相互独立的在iOS开发的MVC框架中我们可以理解为view和model相互独立两者属于不知道对方的存在的陌生人关系。 ⚠️Model 和 View 是相互独立的 这是很容易犯错的一点因为MVC 架构模式是在软件设计中通用的不只是iOS 开发。iOS 开发中的MVC模式是基于传统的MVC 架构的只是在具体实现上有所不同。Apple 官方对于iOS开发中的MVC 模式和传统的MVC 架构有所不同如果查阅传统的MVC 架构会发现View 和Model 之间是有通信的。 转自 SungKaikai 文章链接 通信方式 控制器C可以直接访问模型M将模型直接作为控制器的属性。控制器C可以直接访问视图V将视图直接作为控制器的属性。模型M与视图V无法直接访问对方二者完全解耦不能引用对方把对方设置为属性。视图V到控制器C的通信 目标动作机制(target - action)用户与视图交互触发控制器的方法。例如点击按钮后实现视界面跳转网络请求刷新UI等。 委托机制(delegate)视图向控制器询问某些自己无法决定的事情或是让控制器帮助自己做一些自己独立无法完成的事情。 因为控制器才是掌握全局的角色很多时候视图是无法自己做决定的。例如表格问控制器我可以滚动么然后控制器给予回答告知是否可以继续滚动。 如果表格的高度很小那么就可以不让它滚动。但是如果表格的高度已经超过了屏幕的高度这时候如果让它自作主张无法滚动就不好了。 数据源机制(dataSource):视图让控制器给它将要显示的数据。例如音乐的数据存在于模型里控制器访问模型从模型里拿到数据后告诉视图如何显示出歌曲。模型M到控制器C的通信 广播机制(Notification)控制器注册监听某模型数据变化的广播频道当此模型数据变化后向该控制器发送广播告知模型变化情况。 KVO机制(Key-Value Observing)模型作为控制器的属性当模型属性被修改后持有此模型属性的控制器就会收到通知。 ——斯坦福大学iOS开发公开课总结一iOS的MVC框架 简单应用 先看看创建的文件 1.创建 Model 模型通常是一个或多个类它们包含数据和对数据进行操作的方法。例如一个简单的Person测试模型 #import Foundation/Foundation.hNS_ASSUME_NONNULL_BEGINinterface TestModel : NSObjectproperty (nonatomic, strong) NSString *name; property (nonatomic, strong) NSNumber *age;- (void)performAction;endNS_ASSUME_NONNULL_END#import TestModel.himplementation TestModel- (void)performAction {// 这里可以放置一些业务逻辑例如打印一条消息NSLog(Hello, my name is % and I am % years old., self.name, self.age); }end这里的代码存在一些bug后续笔者修改后会再呈现完整代码。 总结 在模型类里是不能调用控制器的方法的模型类只能被控制器调用并且当所拥有的数据改变后通知使用自己的控制器数据的改变。更不能直接给视图通知让视图自己更新UI。 参考文章iOS 架构设计代码实例学习-MVC 模式       你真的了解MVC吗
http://www.hkea.cn/news/14506311/

相关文章:

  • 建立大型网站流程一个网站数据库
  • 百度怎么自己做网站提供手机网站建设企业
  • 德州市网站建设广州网站设计十年乐云seo
  • 网站可信认证廊坊做网站1766534168
  • 公众号做微网站网站开发是啥了
  • 网站域名备案与不备案的区别搜索引擎营销的常见方式
  • 阿里云手机做网站门户网站建设系统
  • 杭州企业网站专业设计wordpress 游戏 模板
  • 电子商务网站建设教学免费空间域名申请
  • 淮滨网站建设公司网页广告培训班
  • 专门做网页设计网站谷歌网站站长指南
  • 东莞网站建设备案一键提交网站
  • 呼和浩特网站建设网络公司遂溪网站开发公司
  • 备案网站的规则如何在自己网站做直播
  • 营销型网站套餐外贸一年赚个100万难吗
  • 网站建设 教学视频教程购买云服务器之后怎么使用
  • 架设网站flash不显示微网站的建设模板有哪些
  • 新手学网页设计的网站土木在线网
  • 东莞市手机网站建设哪家好h5第三方收款平台
  • 班玛县公司网站建设百度推广登录入口官网网
  • asp网站添加背景音乐徐东网站建设
  • 有免费做推广的网站吗建设网站要做的工作内容
  • 电子商务企业 网站前台建设 苏宁wordpress sae 4.4
  • 清涧县住房和成乡建设局 网站网站推广和优化的原因网络营销
  • 查询系统网站模板简约大气网站欣赏
  • 上海 网站开发 外包最好的短视频制作软件
  • 网站创建后台网站代码多彩
  • 手机高端网站开发正规职业技能培训机构
  • 新能源网站开发十大软件开发培训机构
  • 一直能打开的网站突然打不开桓台网页定制