上一页 1 2 3 4 5 6 7 ··· 10 下一页

2012年3月13日

摘要: 在《OpenGL Shading Language Second Edition》中发现多纹理在GLSL中的正确使用方法,先看c++源码:view sourceprint?01.glActiveTexture(GL_TEXTURE0);02.glBindTexture(GL_TEXTURE_2D, earthDayTexName);03.04.glActiveTexture(GL_TEXTURE1);05.glBindTexture(GL_TEXTURE_2D, earthNightTexName);06.07.glActiveTexture(GL_TEXTURE2);08.glBindTex 阅读全文

posted @ 2012-03-13 14:30 无忧consume 阅读(653) 评论(0) 推荐(0) 编辑

摘要: OpenGL ES是OpenGL三维图形API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。 Ophone目前支持OpenGL ES 1.0 ,OpenGL ES 1.0 是以 OpenGL 1.3 规范为基础的,OpenGL ES 1.1 是以 OpenGL 1.5 规范为基础的。本文主要介绍利用OpenGL ES绘制图形方面的基本步骤。本文内容由三部分构成。首先通过EGL获得OpenGL ES的编程接口;其次介绍构建3D程序的基本概念;最后是一个应用程序示例。EGL OpenGL ES本质上是一个图形渲染管线的状态机,而 EGL 则是用于监控这些状态以及维护帧缓冲和其他渲染面的外 阅读全文

posted @ 2012-03-13 14:22 无忧consume 阅读(551) 评论(1) 推荐(0) 编辑

摘要: http://www.cnblogs.com/likwo/archive/2011/06/18/2084192.html曾经有人这么说过,在iphone里你看到的,摸到的,都是UIView,所以UIView在iphone开发里具有非常重要的作用。那么UIView我们到底知道多少呢。请看看下面的问题,如果这些你都知道,那么本文章的内容就请绕道,如果你还不太清楚,我想看了下面的内容,你就明白了。1。bounds和frame分别表示什么?2。ContentMode里UIViewContentModeScaleToFill代表什么?3。contentStretch 里的指定UIView里缩放区域是如何 阅读全文

posted @ 2012-03-13 14:19 无忧consume 阅读(198) 评论(0) 推荐(0) 编辑

摘要: http://mobileorchard.com/find-iphone-memory-leaks-a-leaks-tool-tutorial/There are plenty of different places to get a mobile application designed. The problem is that they’re quite expensive. You might be able to figure out how to create your own, but it will probably look very basic. Instead, a goo 阅读全文

posted @ 2012-03-13 14:11 无忧consume 阅读(260) 评论(0) 推荐(0) 编辑

摘要: http://www.cppblog.com/zhangyuntaoshe/articles/123138.html说明:objective-C/C++开发语言了。除了Cocoa相关框架和库之外,像Boost、STL以及标准ANSI C运行时库均可使用。不过大家在使用这些库时还得注意自己程序的运行环境。--------------------zhangyuntao 2010.8.12方式:1.引入头文件:#include<vector>#include<algorithm>usingnamespacestd;2.将实现文件改名为.mm 告诉XCode启用gcc...示例 阅读全文

posted @ 2012-03-13 14:09 无忧consume 阅读(289) 评论(0) 推荐(0) 编辑

摘要: http://www.cppblog.com/zhangyuntaoshe/articles/135811.htmliPhone with File I/OServin Mobile SoftwareHow to use iPhone with File I/O Functions: A Tutorial for Software DevelopersNorman McEntireVersion 1.4 Sep 1. Thank you Freedy.Version 1.3 Aug 6. Thank you Chris B.Version 1.2 May 1. Thank you Pierre 阅读全文

posted @ 2012-03-13 14:02 无忧consume 阅读(255) 评论(0) 推荐(0) 编辑

摘要: As far as I know there is only one hacky way to do that. You basically open a socket and get its address using POSIX functions. Here is the code I used for this:原代码地址(需FQ):http://iphonesdksnippets.com/post/2009/09/07/Get-IP-address-of-iPhone.aspx/** IPAdress.h***/#defineMAXADDRS 32externchar*if_name 阅读全文

posted @ 2012-03-13 13:56 无忧consume 阅读(391) 评论(0) 推荐(0) 编辑

摘要: no matching function for call to在VS中也许不会报错,或是在objective-c也不会报错,但是在.mm终究会报错,有可能因为函数变量不匹配,即使形参是void(*)。如果是这种问题,可以显示强制装换一下试试 阅读全文

posted @ 2012-03-13 13:54 无忧consume 阅读(901) 评论(0) 推荐(0) 编辑

摘要: NSUInteger an_Integer;NSArray* ipItemsArray;NSString*externalIP;NSURL *iPURL =[NSURL URLWithString:@"http://www.dyndns.org/cgi-bin/check_ip.cgi"];if(iPURL){ NSError*error = nil; NSString*theIpHtml =[NSString stringWithContentsOfURL:iPURL encoding:NSUTF8StringEncoding ... 阅读全文

posted @ 2012-03-13 13:50 无忧consume 阅读(323) 评论(0) 推荐(0) 编辑

摘要: 先试试这整个:NSHost* myhost =[NSHost currentHost];NSString *ad = [myhost address];再试试:-(void) getIPWithNSHost{ NSArray*addresses =[[NSHost currentHost] addresses];for(NSString*anAddress in addresses){ if(![anAddress hasPrefix:@"127"]&&[[anAddress componentsSeparatedByString:@"." 阅读全文

posted @ 2012-03-13 13:49 无忧consume 阅读(294) 评论(0) 推荐(0) 编辑

摘要: Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 failed with exit code 1问题总结及解决方案 最近因为需要,要用C,C++,Objective-C三种C语言3C混编的开发程序,在当然方法也和大家说一下吧,就是在Xcode环境中把C语言的.c文件,C++的.cpp文件与Objective-C的.m文件的文件名全部修改成.mm,这样就可以启用Objective-C++的编译环境3C混编了,可是遇到了上述问题,网上的说法不一致,而且我也遇到了多次这个问题,最后解决... 阅读全文

posted @ 2012-03-13 13:44 无忧consume 阅读(365) 评论(0) 推荐(0) 编辑

摘要: http://blog.pfan.cn/cracker007/17239.html初学者经常被这个问题所困惑: char *p="abc"==>"abc"是一个const char*,为什么能够赋值给char *? 按照 C/C++ 标准的描述,"abc" 是 string literal (字符字面量、字符文字量),具有静态存储性质,类型是数组类型,并且不能被改变。注意:"abc" 是一个数组类型的对象,是左值。当然左值可以转化为右值使用,就像数组类型的对象可以转化为指针一样。虽然 "abc&qu 阅读全文

posted @ 2012-03-13 13:42 无忧consume 阅读(312) 评论(0) 推荐(0) 编辑

该文被密码保护。 阅读全文

posted @ 2012-03-13 11:43 无忧consume 阅读(1) 评论(0) 推荐(0) 编辑

摘要: C++中令人混淆的3个new和delete在深入学习C++的过程中遇到3个new和delete让我十分迷惑,经过学习,有了点初步理解的感觉。总结如下C++中,内存分配和对象构造紧密纠缠,就像对象析构和内存回收一样。使用new 表达式的时候,分配内存,并在该内存中构造一个对象,使用delete的时候,调用析构函数撤销对象,并将对象所用内存返还给系统。C++提供了一下两种方法来分配和释放未构造的原始内存:1)allocator类的allocate 和 deallocate成员函数2)标准库中的 operator new 和 operator delete。C++还提供了在原始未构造的内存中构造和析 阅读全文

posted @ 2012-03-13 10:32 无忧consume 阅读(247) 评论(0) 推荐(0) 编辑

摘要: 顶点数组, glDrawArrays,glDrawElements - [OpenGL]前两天接触OpenGL ES的时候发现里面没有了熟悉的glBegin(), glEnd(),glVertex3f()函数,取而代之的是glDrawArrays()。有问题问google,终于找到答案:因为OpenGL ES是针对嵌入式设备这些对性能要求比较高的平台,因此把很多影响性能的函数都去掉了,上述的几个函数都被移除了。接下来看看这些函数是如何使用的。1.glEnableClientState(GL_VERTEX_ARRAY); 使能顶点数组功能。2.将准备好的数组告知程序,使用glVertexPoin 阅读全文

posted @ 2012-03-13 10:29 无忧consume 阅读(1322) 评论(0) 推荐(0) 编辑


2012年3月12日

摘要: Cocoa.h includes the following umbrella headers:#import <Foundation/Foundation.h>#import <AppKit/AppKit.h>#import <CoreData/CoreData.h>Digging deeper, CoreData.h includes#import <Foundation/Foundation.h>#import <CoreData/CoreDataDefines.h>#import <CoreData/CoreDataEr 阅读全文

posted @ 2012-03-12 20:52 无忧consume 阅读(493) 评论(0) 推荐(0) 编辑

摘要: 快速知道当前文件夹的准确位置-路径栏在Leopard中,Finder里加入了一个新的特性,叫路径栏。在Finder菜单中点击“显示”,然后选择“显示路径栏”:这时,在Finder窗口下部,就会出现一条路径栏。路径栏有下面几个作用:1. 显示当前文件夹的完整路径。2. 通过双击路径栏上的图标,可以快速进入路径中的任意文件夹。比如:在上图中双击“用户”文件夹图标,Finder就会进入“用户”文件夹。3. 路径栏上的图标不仅可以双击,而且可以直接把文件拖拽到图标上,来进行文件的移动,是不是非常方便? 阅读全文

posted @ 2012-03-12 16:13 无忧consume 阅读(792) 评论(0) 推荐(0) 编辑

摘要: 使用Xcode4编译器设定Release/Debug教程是本文要介绍的你内容,主要是来学习xcode 4的相关内容,让我们更一步的去熟悉、了解xcode 4,内容不多,不过真的可以帮助友们去解决xcode 4中编译器的问题。先来看内容。 进入Xcode 4,选择菜单“Product”->“Manage Schemes”,出现下图: 选择一个项目,点击“Edit”,如图: Bulid Configuration 在调试中,如果需要传入参数,在上图中Arguments上设置。 一般这个设置常用于控制台程序,比如:A.exe -p boy 那么,在Arguments上添加-p boy... 阅读全文

posted @ 2012-03-12 15:26 无忧consume 阅读(265) 评论(0) 推荐(0) 编辑

摘要: 线程是有趣的http://www.ibm.com/developerworks/cn/linux/thread/posix_thread1/了解如何正确运用线程是每一个优秀程序员必备的素质。线程类似于进程。如同进程,线程由内核按时间分片进行管理。在单处理器系统中,内核使用时间分片来模拟线程的并发执行,这种方式和进程的相同。而在多处理器系统中,如同多个进程,线程实际上一样可以并发执行。那么为什么对于大多数合作性任务,多线程比多个独立的进程更优越呢?这是因为,线程共享相同的内存空间。不同的线程可以存取内存中的同一个变量。所以,程序中的所有线程都可以读或写声明过的全局变量。如果曾用 fork() 编 阅读全文

posted @ 2012-03-12 14:49 无忧consume 阅读(215) 评论(0) 推荐(0) 编辑

摘要: Mac 电脑下面可以使用苹果自带的编程程序Xcode,可以使用购买电脑时的安装盘来安装这个软件,我目前安装的是xcode 3.2。与大多数程序不同,Xcode并不是安装到/Applications,而是安装到了根目录下的Developer文件夹中1.file->new project->mac os x->application->command line tool, 默认是c,创建一个c项目...这样你就可以直接编译运行了.2.接下来的问题是,运行时让console弹出来. 方法:xcode->preference->debugging->on st 阅读全文

posted @ 2012-03-12 14:43 无忧consume 阅读(862) 评论(0) 推荐(0) 编辑

摘要: NameglFrustumf,glFrustumx- multiply the current matrix by a perspective matrixC Specificationvoid glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far)void glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixe... 阅读全文

posted @ 2012-03-12 01:07 无忧consume 阅读(352) 评论(0) 推荐(0) 编辑

摘要: Name glDrawArrays — render primitives from array dataC SpecificationvoidglDrawArrays(GLenum mode,GLint first,GLsizei count);ParametersmodeSpecifies what kind of primitives to render. Symbolic constantsGL_POINTS,GL_LINE_STRIP,GL_LINE_LOOP,GL_LINES,GL_TRIANGLE_STRIP,GL_TRIANGLE_FAN,GL_TRIANGLES,GL_QU. 阅读全文

posted @ 2012-03-12 00:25 无忧consume 阅读(653) 评论(0) 推荐(0) 编辑


2012年3月11日

摘要: NameglDrawElements — render primitives from array dataC SpecificationvoidglDrawElements(GLenum mode,GLsizei count,GLenum type,const GLvoid * indices);ParametersmodeSpecifies what kind of primitives to render. Symbolic constantsGL_POINTS,GL_LINE_STRIP,GL_LINE_LOOP,GL_LINES,GL_TRIANGLE_STRIP,GL_TRIANG 阅读全文

posted @ 2012-03-11 23:59 无忧consume 阅读(645) 评论(0) 推荐(0) 编辑

摘要: 大多数情况下都是vc安装的问题试试下面的方法吧:(转的)Compiling...Error spawning cl.exe3-6.exe - 1 error(s), 0 warning(s)可能很多人在安装VC 6.0后有过点击“Compile”或者“Build”后被出现的“Compiling... ,Error spawning cl.exe”错误提示给郁闷过。很多人的选择是重装,实际上这个问题很多情况下是由于路径设置的问题引起的,“CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\VC98\Bin”下面,你可以到相应的路径下找到这个应用程序。因此问题可以按照以下方法解 阅读全文

posted @ 2012-03-11 23:27 无忧consume 阅读(346) 评论(0) 推荐(0) 编辑

摘要: 介绍Xcode是一个强大的专业开发工具,可以简单快速、而且以您熟悉的方式执行绝大多数常见的软件开发任务。相对于创建单一类型的应用程序所需要的能力而言,Xcode要强大得多,它的设计目的是使您可以创建任何想像得到的软件产品类型,从Cocoa及Carbon应用程序,到内核扩展及Spotlight导入器等各种开发任务,Xcode都能完成。Xcode独具特色的用户界面可以帮助您以各种不同的方式来漫游工程中的代码,并且使您可以访问工具箱下面的大量功能,包括GCC,javac,jikes,和GDB,这些功能都是制作软件产品需要的。它是一个由专业人员设计的、又由专业人员使用的工具。由于能力出众,Xcode已 阅读全文

posted @ 2012-03-11 16:39 无忧consume 阅读(288) 评论(0) 推荐(0) 编辑

摘要: 80后步入而立之年,这个年龄段的人必然面临结婚生子的压力。前几年还在父母身边撒娇的80后转眼要独立买房,买房时需要注意哪些问题呢?下面就来讲一讲80后买房必看的七大建议,以及买卖二手房的七大避开雷区的招数。1、贷款自己还 首付可以找父母,但鼓励自己贷款,毕竟他们赚养老钱不容易。适当“啃老”并不丢人,现在房价这么高,在80后还没有能力支付大笔首付时,父母的支持是80后最坚实的后盾。 不过在爸妈打好基础之后,就需要自己为月供努力了。 记者点评:自己动手丰衣足食,记者认为这一个口还是最好不要开,80后最大的问题就是依赖思想,一旦开了第一个口,后面的口再开,不少80后就会心安理得的。中国有一... 阅读全文

posted @ 2012-03-11 12:54 无忧consume 阅读(215) 评论(0) 推荐(0) 编辑

摘要: 我们都知道在C/C++语言中,堆内存是应该由程序员负责释放的,编译器并不负责释放程序员自己分配的堆内存空间;而在Objective-C语言 中,类实例的释放是通过release方法进行释放的,如果是Autorelease Pool中的实例,程序员还不必自己手动释放相应的内存空间,这点对于习惯在iPhone中使用C/C++风格编写程序的程序员来说,无疑是有点迷惑性 的,例如下面的代码:view plaincopy to clipboardprint?#import<Foundation/Foundation.h>@interfaceMemoryManager:NSObject{@pu 阅读全文

posted @ 2012-03-11 03:03 无忧consume 阅读(206) 评论(0) 推荐(0) 编辑

摘要: 还有许多理论知识需要讨论,但与其花许多时间在复杂的数学公式或难以理解的概念上,还不如让我们开始熟悉OpenGL ES的基本绘图功能。请下载OpenGL Xcode项目模板。我们使用此模板而不是Apple提供的模板。你可以解压到下面目录来安装它:/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application/此模板用于全屏OpenGL程序,它具有一个OpenGL视图以及相应的视图控制器。 大部分时候你不需要动到此视图。此视图用于处理一些诸如缓存切换之类的事物,但在两处调用了其 阅读全文

posted @ 2012-03-11 02:29 无忧consume 阅读(233) 评论(0) 推荐(0) 编辑

摘要: 从零开始学习OpenGL ES之一 – 基本概念我曾写过一些文章介绍iPhone OpenGL ES编程,但大部分针对的是已经至少懂得一些3D编程知识的人。作为起点,请下载我的Empty_OpenGL_ES_Application.zip(42.39 KB, 下载次数: 14),而不要使用Apple提供的模板。你可以解压到下面位置安装此模板:/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application/已经有大量有关OpenGL的好教程和书籍。但是,却没有多少是关于Ope 阅读全文

posted @ 2012-03-11 02:22 无忧consume 阅读(357) 评论(0) 推荐(0) 编辑

摘要: Objective-C构造函数是本文要介绍的内容,主要是来了解构造函数,它是在创建对象的时候用来初始化对象数据的一种特殊的方法,构造方法返回对象的一个指针,我们可以通过调用超类的 init 方法来获取这个指针。objective-c函数,Objective-C 构造函数,Objective-C函数调用,Objective-C函数声明。构造函数是在创建对象的时候用来初始化对象数据的一种特殊的方法。构造函数可以使用任何方式命名,但是通常,将他们命名为 Init 。构造方法返回对象的一个指针,我们可以通过调用超类的 init 方法来获取这个指针,超类是当前的类所派生自的类,也就是当前类的父类,这.. 阅读全文

posted @ 2012-03-11 01:30 无忧consume 阅读(362) 评论(0) 推荐(0) 编辑


2012年3月9日

该文被密码保护。 阅读全文

posted @ 2012-03-09 01:10 无忧consume 阅读(3) 评论(0) 推荐(0) 编辑


2012年3月8日

摘要: 1、必要组件安装 打开“控制面板”→“添加或删除程序”→“添加或删除Windows组件”→“应用程序服务器”→“详细信息”→“Internet信息服务(IIS)”→“详细信息”→“因特网服务”→“详细信息”→勾选“远程桌面Web连接”→连点三个“确定”→“下一步”等待完成。2、启用或禁用远程连接 打开系统中的控制面板,在“远程”选项卡上,选中或清除“允许用户远程连接到您的计算机”复选框。单击“选择远程用户…”,在随后出现的对话框中添加或删除用户,单击“确定”(两次)。 阅读全文

posted @ 2012-03-08 17:16 无忧consume 阅读(190) 评论(0) 推荐(0) 编辑

摘要: Linux 网络编程基础 ---------------客户端/服务器的简单实现一、 Socket的基本知识1. socket历史与功能 在80年代早期,加利福尼亚大学伯克利分校的一个研究组,将TCP/IP软件一直到UNIX操作系统上。作为实现该项目的一部分,他们设计了一种接口,应用程序可以通过这个接口方便的进行通信。这样做的结果是出现了插件接口(Barkeley Socket)。图1. Socket层次 Socket实质上提供了进程通信的端点,进程通信之前,双方必须首先各自创建一个端点,否则是没有办法建立联系并相互通信的。 每一个Socket都一个半相关描述: {协议, 本地地址, ... 阅读全文

posted @ 2012-03-08 13:07 无忧consume 阅读(298) 评论(0) 推荐(0) 编辑

摘要: [iPhone学习笔记五]iPhone程序包结构 当build iPhone程序时,Xcode会将它打成一个包。这个包是文件系统下的一个目录用于将相关资源放到一起。一个iPhone程序包包括可执行程序和程序使用的各种资源(例如程序图标、其他图片和本地化资源等)。下面我们逐个看一下iPhone程序包里到底有什么?MyApp 盛放程序代码的可执行文件。此文件的名称与工程的名称相同。这个文件是必须的。Settings.bundle Settings.bundle是一个像设置程序(Settings Application)添加设置选项的一组文件包。这个文件包中包含有属性列表和其他用于设置和现实属... 阅读全文

posted @ 2012-03-08 00:36 无忧consume 阅读(217) 评论(0) 推荐(0) 编辑

摘要: [iPhone学习笔记四]iPhone的基本设计模式 UIKit框架的设计采用了很多和Cocoa程序类似的设计模式。理解这些设计模式对开发iPhone程序非常重要。因此在学习开发iPhone程序前,有必要了解一下iPhone开发中常用的设计模式。iPhone应用程序中的基本设计模式包括:MVC模式(Model-View-Controller) MVC模式是将你的代码风格成独立的功能模块的良好方法。模型(Model)部分定义了底层数据引擎并负责维护这些数据的整合;视图(View)部分定义了用户界面,它并不知道显示在界面上的原始数据的具体含义;控制器(Controller)部分像是模型和视图之.. 阅读全文

posted @ 2012-03-08 00:35 无忧consume 阅读(209) 评论(0) 推荐(0) 编辑

摘要: [iPhone学习笔记三]事件处理循环 UIApplicationMain处理完程序初始化以后,他会开启时间出来循环和屏幕绘制循环。过程如下图:当用户与iPhone设备交互时,iPhoneOS会检测触摸事件并把它放到事件队列中。负责事件处理的UIApplication对象每次从队列顶部取出事件,并把它传递给最适合处理它的对象。例如在按钮上的点击事件会被传递给相应的按钮对象。时间也可以被传递给控制器或其他并非直接处理改事件的其他对象。 在iPhoneOS的Multi-Touch事件模型中,触摸数据被封装到单独的事件对象中(UIEvent).为了跟踪某个触摸,事件对象包含若干个触摸对象(UIT.. 阅读全文

posted @ 2012-03-08 00:34 无忧consume 阅读(192) 评论(0) 推荐(0) 编辑

摘要: [iPhone学习笔记二]谈谈代理类(delegate class) 程序的代理对象是开发者自己实现的对象,主要负责监听程序的高级行为。代理机制用于避免继承复合UIKit对象(例如UIApplication对象)。使用代理不需要子类继承或重写父类的方法,只要保持复合对象不变,将需要添加或重写的代码放到代理对象中。当有事件发生,复合对象会发送消息给代理对象。 这有点像“钩子”,通过这些“钩子”来执行代码和实现需要的行为。 程序代理负责处理很多重要的系统消息没一个iPhone程序都必须有。这个对象可以是任何实现了UIApplicationDelegate协议(protocol)的对象的实例,U.. 阅读全文

posted @ 2012-03-08 00:33 无忧consume 阅读(217) 评论(0) 推荐(0) 编辑

摘要: [iPhone学习笔记一]iPhone程序的生命周期 任何程序的生命周期都是指从程序加载到程序结束这一短时间。在iPhone中,用户通过点击主页面上的程度图标启动一个程序。点击后,系统会显示一个过渡的画面然后调用main()函数来加载程序。从这一刻开始,大量的初始化工作都交给了UIKit,它加载程序的用户界面并启动事件循环。在时间循环过程中,UIKit将传入的时间和自定义对象相关联并响应程序的命令事件。如果用户的某个操作引起程序的退出,UIKit会通知程序并开始结束程序过程。下图简单的反应了iPhone程序的周期。 在iPhone程序中,main()函数很少被使用。绝大多数实际的工作都交由.. 阅读全文

posted @ 2012-03-08 00:31 无忧consume 阅读(221) 评论(0) 推荐(0) 编辑


2012年3月7日

摘要: static GLfloat rot = 0.0; static const Vertex3D vertices[]= { {0, -0.525731, 0.850651}, // vertices[0] {0.850651, 0, 0.525731}, // vertices[1] {0.850651, 0, -0.525731}, // vertices[2] {-0.850651, 0, -0.525731}, // vertices[3] {-0.850651, 0... 阅读全文

posted @ 2012-03-07 00:57 无忧consume 阅读(203) 评论(0) 推荐(0) 编辑


2012年3月6日

摘要: 委托是Cocoa中最简单、最灵活的模式之一。委托是指给一个对象提供机会对另一个对象中的变化做出反应或者影响另一个对象的行为。其基本思想是:两个对象协同解决问题。一个对象非常普通,并且打算在广泛的情形中重用。它存储指向另一个对象(即它的委托)的引用,并在关键时刻给委托发消息。消息可能只是通知委托发生了某件事情,给委托提供机会执行额外的处理,或者消息可能要求委托提供一些关键的信息以控制所发生的事情。 委托方法通常包括3种动词:should、will、did。 should表示一个动作发生前,通常带有返回值,可以在动作发生之前改变对象状态。 will在动作发生前,委托可以对动作做出响应,但... 阅读全文

posted @ 2012-03-06 16:16 无忧consume 阅读(192) 评论(0) 推荐(0) 编辑


上一页 1 2 3 4 5 6 7 ··· 10 下一页

Copyright © 2024 无忧consume
Powered by .NET 9.0 on Kubernetes