[翻译]Popfly系列课程4 - 使用Popfly介绍面向对象理论 --- 仅以此文纪念已经停止运营的Microsoft Popfly

仅以此文纪念已经停止运营的Microsoft Popfly

 

Popfly团队博客的说明:

image

Popfly Shutting Down

 

We want to thank everyone who registered for and used Popfly. We’ve been fortunate enough to see all the innovative mashups, Web pages, and games you’ve created since we launched Popfly two years ago and it’s been a pleasure to watch the spirit of creativity flow through a growing Popfly community over the life of the product.

 

Unfortunately, on August 24, 2009 the Popfly service will be discontinued and all sites, references, and resources will be taken down. At that time, your access to your Popfly account, including any games and mashups that you have created, will be discontinued. However, Microsoft is still very much dedicated to helping you express your creativity and pursuing a path to software development and offers multiple products to help along the way. If you’re interested in refining your skills in Web applications, please visit Microsoft Web Platform Installer. For those interested in programming on the Xbox, then please visit Microsoft XNA or Microsoft Kodu. And for those who are interested in Windows programming, please visit Microsoft Express. If you have questions or concerns or just want to drop us a line, contact us at [email protected].

 

Thanks again for your support.

 

Regards,

 

John Montgomery

 

for the Popfly Team

 

 

说话间刚刚在InfoQ站点上看到了文章,说Popfly的游戏引擎部分开源。详见:http://www.infoq.com/cn/news/2009/08/popfly-open-source

 

[翻译]Popfly系列课程4 - 使用Popfly介绍面向对象理论

 

考虑你的移动电话,以及你怎样向其他人描述它。它有特征(如制造商与型号);它拥有其可以完成的功能(如拨打一个号码,或设置一个铃声);你的朋友可能拥有与你的手机相同的手机,然而其中存储的信息使它们不同。以上这些描述了手机作为世界中存在的对象的各个方面。

本课在构建Popfly mashup与结构化数据交互及合并来自不同对象的数据的过程中介绍了基本的面向对象的概念。

使用Popfly介绍面向对象理论

 

 

本课的Professor Popfly Mashups参考:

l  States Starting with M - 1(http://www.popfly.com/users/professorpopfly/Mstates-1)

l  States Starting with M - 2(http://www.popfly.com/users/professorpopfly/Mstates-2)

l  红与黄 (http://www.popfly.com/users/professorpopfly/RedAndYellow)

l  我的新闻阅读器 (http://www.popfly.com/users/professorpopfly/MyNewsReader)

image

学习成果

 

完成本课学习后,你应该能够:

l  将类,对象,方法,参数,实例及属性的面向对象建模的概念与Popfly块同mashup相关联。

l  Popfly数据块访问数据

l  使用Combine块连接来自两个不同Popfly块的对象或项目。

l  研究一个Popfly块输出的“完整对象”

l  构建一个结合两个新闻RSSmashup

概览

 

考虑你的移动电话,以及你怎样向其他人描述它。它有特征(如制造商与型号);它拥有其可以完成的功能(如拨打一个号码,或设置一个铃声);你的朋友可能拥有与你的手机相同的手机,然而其中存储的信息使它们不同。

手机的一部分任务可能需要附加的信息才能完成。(例如,提供电话号码以便拨打电话,或者铃声使用的音频的名称。)以上这些描述了手机作为世界中存在的对象的各个方面。

本课在构建Popfly mashup的过程中介绍了基本的面向对象的概念。你将要构建与完整对象或其中一部分交互,并且将来自不同对象的数据结合到一起的mashup

生活在一个面向对象的世界中

 

对象是现实世界中对真实事物建模的方法,一个类是一个特定对象的描述。例如,你可以使用一个称为cellPhone的类,通过在其中定义手机特性(或属性),如制造商与型号,或其功能(即方法,如拨号与设置铃声)及与其要求一致的参数(输入):DialNumber需要一个电话号码来拨号,SettingTone需要包含铃声的硬盘文件的名称,完整的描述一个手机。你我的手机都是CellPhone类的实例。

Popfly提供了一个自然的上下文来介绍面向对象概念。许多块都是拥有描述它们功能的方法与描述他们行为的属性的对象。一些块返回包含一系列相关值(如一副flickr照片的信息)的对象。

image

image

         在这个例子中,有两个flickr块的实例。每一个flickr块拥有一个Developer Key属性,一个名为getPhotoes的方法(或称操作)有三个参数(或输入):描述要获取图像的文本,要获取图像的数目,以及这些信息的排序方法(相关度,拍摄日期,兴趣度,等等。)

         参数是你传给Popfly中操作的值。在面向对象编程中,方法是用描述操作 - 对象知道怎样处理的工作的语句。配置mashup可以让你在无需进入mashup编辑器的情况下,改变任何方法块中方法的输入,你只需点击每一个块的扳手图标,并指定新的输入值。改变参数将改变方法的行为,同时也改变mashup的输出。

         部分Popfly块也将对象作为作为它们的输出。例如,flickr块返回一个包含flickr照片信息的Photo对象。

image

         如上图所示,一种看到一个block块输出的信息的方式是将其连接到另一个块,并查看可以提供的并查看可以供块的完整对象使用的项目。这里,flickr块连接到PhotoFlip块,PhotoFlipvalue的下拉列表显示了flickr块输出的针对每个flickr照片的整个Photo对象中可用的对象。

         出于调试目的,有时候BlockOutputInspector块在查看块返回的对象中的数据时很有帮助。将BlockOutputInspector块连接到出问题的块并运行这个mashup

 

示例1 相同的块,不同的输入产生不同的结果

 

         下面两个例子展示了一个mashup,其通过United States Information数据块查找字母M打头的洲。

         这两个mashup使用了相同的块,但是根据为条件生成器与Filter块指定的输入与输出,你会得到不同的结果,然后使用一个ConditionBuilder块来设置过滤条件。更多ConditionBuilder块的使用信息在介绍逻辑的课程中讲解。

MStates-1这个mashup的输出是一个简单的以M开头的洲的名称的列表。

MStates-2这个mashup的输出是来自United States Information块的以M开头的洲的对象的列表。

image

image

image

image

image

image

示例2:合并相同类型的对象

 

 

当对象是合并自一个相同块的不同实例时Popfly的合并块功能就可以发挥作用,例如,合并来自两个flickr块的图像,或者合并两个新闻源的结果。

这个示例使用了合并块来创建一个自定义的新闻阅读器。

image

         要构建这个mashup,拖动两个Live News块的实例到设计界面。为每个块指定的搜索方法指定一个感兴趣的话题作为查询条件。这个例子合并了技术与商业两类新闻。

image

         开始合并这两个Live News块,选择完整的LiveNewsResults对象作为合并的目标。这样,所有LiveNewsResults对象的字段将对News Reader块可用。

image

示例3:合并不同类型对象的属性

 

你可能也使用Combine块来创建一个新的列表来合并不同块的(往往是相同类型的)独立项目。例如,Professor PopflyRedAndYellow mashup合并了三个标签为”red”flickr相片以及三张标签为”yellow”的来自Live图片搜索的相片。注意,Combine块合并了来自flickroriginalUrl与来自Live图片搜索的mediaUrl来产生结果。

image

 

image

 

你可能感兴趣的:(Microsoft)