iOS设计模式之Target-Action
今天是我第一天写博客,可能有些地方我理解的不太好,写的不太清,请各位见谅,有哪些问题,请大神们指教
iOS设计模式之Target-Action主要是为了降低代码的耦合性。顾名思义 Target-Action模式就是指 目标-动作模式,它贯穿于iOS开发始终。
提到Target-Action,先说2个词 “高内聚,低耦合” 这主要是评价一个软件的好坏
它评判软件的好坏主要靠模板之间内聚是否高,模块间耦合度是否低。
其实Target-action模式很简单,就是当某个事件发生时,调用那个对象中的那个方法。比如:点击按钮时,调用Controller里边的click方法。“那个对象”就是Target,“那个方法”就是Action,及Controller是Targer,click方法是action。
一般Target都是Controller,而Action有它自己固有的格式:-(IBAction)click:(id)sender。
对于Target-Action模式更加专业点讲,可以这么说:Target-Action是一种当一个事件发生时候,一个对象携带发送一个消息到另一个对象的必要的信息设计模式。存储的信息包括两类数据:标识所被调用的方法的动作选择器,和一个接收消息的目标。当被称作动作消息的事件发生的时候消息开始发送。尽管target可以是任何对象,甚至是框架对象,典型代表是以一种应用的特殊方式处理action message的一个自定义控制器。引发一个动作消息的事件可以是任何事物,比如对象发送消息可以为任何对象一样。举个例子:手势识别对象可能会发送一个动作消息给另一个对象当手势被识别的时候。然而target-action范例最普遍的发现在控制器例如按钮或者滑动条。当一个用户操作一个控制对象,它发送消息给特殊的对象。控制对象是UIControl的子类。action selecter和target object都是控制对象的属性。
Target-Action模式主要是在MVC模式中 V--C 之间进行通信的。V(view:视图)只负责发送对应的action给target,并不关心target具体做什么。这样代码的耦合性就松开了。
第一次写,可能逻辑方面和专业方面欠佳,希望大家可以给我宝贵意见,我继续修改