Cocoa教学:Windows OOP与Cocoa MVC之对比
时间: 2009-06-11 20:19 点击: 次
我同样建了一个简单的demo程序来演示上面说的,这里是截图:

你可以在这里下载例子。
这里是我提到的代码,只需要在app delegate的头文件中将你的view声明为outlet:
-
@interface AppDelegate : NSObject {
-
IBOutlet NSTextField *inputText;
-
IBOutlet NSTextField *outputText;
-
}
然后声明这样一个方法,在按下按钮之后会执行:
-
- (IBAction)updateText:(id)sender;
最好要做的事情就是在IB里面把action和outlet连到AppDelegate对象上,任务完成。就这么简单。
为什么Windows的方法烂,Mac的方法赞
好吧,这个小标题仅仅是个玩笑,Windows专家们千万表喷俺。不过我的确认为C#设计用户界面的方式会把人们的代码搞得贼乱,而且明显不是MVC模式。
当然,又来了,怎么做还是看你自己,不过.NET的用户界面设计工具非常鼓励用户去破坏MVC模式。当你在设计器里面把一个按钮拽到窗口里,然后双击那个按钮的时候,它就自动地给你指到按钮点击事件代码里,大部分程序员就自然而然地在那里写代码了。当你在设计过程的时候,倒也没什么,不过它根本没有做什么来支持你将逻辑和表现分开。
在Objective-C里,想破坏MVC设计模式倒是很困难的事情。基本上你都必须遵循这个模式。甚至当你使用Interface Builder在app delegate和action及outlet中间建立连接的时候,都会带有一个可视的MVC表现。要连接app delegate类(你的controller)到outlet的时候(比如输入框),你按住ctrl之后从AppDelegate拖拽一根线放到outlet上。当你想告诉AppDelegate执行一些动作,你要从触发动作的对象中拽到AppDelegate对象上。反过来是不行的。养成这样的习惯其实很好,只不过Windows的铁杆程序员会相当不习惯。
结论
从Windows程序员转到Mac程序员是有一点挑战的,不过你越早抛掉从前的开发的概念,就越容易接受Mac开发的概念。想想令狐冲吧……Mac的开发的确是不太一样的。要习惯这种开发思路,而不要试图沿用从前的习惯来进行Mac开发。
承认这一点吧兄弟们,工程师们都是很傲慢的,而且当学习一门新的语言、技术或是平台的时候,通常会认为他们已经很清楚了。最后这句的英文真的很棒,我不知道怎么翻译才能完美的表达这句话,和大家共勉:Goto is not inherently evil, you know? Until next time.
顶一下(40)
74.1%
踩一下(14)
25.9%
发表评论
本类文章点击排行榜
- [06-11] 苹果开发技术: Cocoa 框架概述
- [04-08] Xcode 开发员入门引导(简体中
- [06-04] 苹果官方推荐教程《Cocoa基本
- [06-11] 介绍一篇很不错的Objective-C的
- [06-11] Cocoa教学:Windows OOP与Cocoa MV
- [06-11] Objective-C中的一些特殊的数据
- [06-11] 歪批:XCode之外的选择?苹果
- [06-11] 一点基础的东西:Objective-C的
- [06-11] Cocoa的单态(singleton)设计模式
推荐内容
最近更新
- [07-12] 关于NSView 的2种初始化方式
- [07-07] iOS 4 多任务和后台运行原理图
- [07-05] Xcode中快速查看函数介绍和帮助的方法
- [06-28] iOS 4 的多任务究竟是怎么回事?
- [06-23] Mac程序开发基础:打开一个目录的方法
- [06-23] retain和copy的区别
- [06-04] 苹果官方推荐教程《Cocoa基本原理指南》
- [04-29] iPhone和Android应用程序界面对比
- [04-08] Xcode 开发员入门引导(简体中文版)


Xcode 开发员入门引导(简体中文版)
iPhone的Push(推送通知)功能原理浅析
Cocoa教学:Windows OOP与Cocoa MVC之对比
谈谈XCode代码自动完成Code Sense功能及XCode界面设置