转载地址: http://blog.sina.com.cn/s/blog_4a1695ff0100ckgo.html
首先弄清楚两点:
(1)谁要发送这个消息(2)谁要接受这个消息。
用一个简单的例子来说明。对象A向B(也可以就是A到A)发送消息。
1 发送消息
首先在A的头文件中定义这个消息:
#define WM_USERMESSAGE WM_USER+30
所有自定义消息都是以WM_USER消息为基础加上一个任意的自然数来表示的。A是向外发送消息的对象,因此在A的某个方法(函数)里就会调用用来发消 息的函数B::SendMessage()/B::PostMessage(),因为是B接受消息,因此是如上的形式。
Continue reading »
转自:http://hi.baidu.com/%BA%EC%C3%F1/blog/item/d013f603726e0c8ad53f7c78.html
今天刚刚装了Visio,但是郁闷地发现Visio中默认没有ER图的模型,绘图类型中的数据库模型中也没有ER图,根本没有菱形。对于第一次接触 Visio的我来说花了好大的力气也没有找到,想专业一把未遂。 Continue reading »
源地址:http://blog.csdn.net/yincheng01/archive/2009/01/06/3718954.aspx
1、获取应用程序指针
CMyApp* pApp=(CMyApp*)AfxGetApp();
2、获取主框架指针
CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针
CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);
或者
CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd(); Continue reading »
_RecordsetPtr m_pRecordset;//创建一个_RecordsetPtr m_pRecordset.CreateInstance(“ADODB.Recordset”); //创建一个实例 try { m_pRecordset->Open(
“SELECT * FROM duty”, //sql查询语句
m_pConnection.GetInterfacePtr(), //得到sql连接的指针
//Const adOpenDynamic = 2 ‘动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。
adOpenDynamic,
Continue reading »
转自:http://hi.baidu.com.sixxs.org/eagle_shuai/blog/item/325c3abfb763800619d81f90.html
chilli 的 MFC指针的获取
CMyApp* pApp=(CMyApp*)AfxGetApp();
2、获取主框架指针
CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针
CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);
或者
CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();
Continue reading »
转自:http://www.wang48.com/jishubaodianview/?jsd_id=4902
(转到自己博客,省的到处去翻)
事实上网络编程简单的理解就是两台计算机相互通讯数据而已,对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了,Java SDK提供一些相对简单的Api来完成这些工作。Socket就是其中之一,对于Java而言,这些Api存在与java.net 这个包里面,因此只要导入这个包就可以准备网络编程了。
网络编程的基本模型就是客户机到服务器模型,简单的说就是两个进程之间相互通讯,然后其中一个必须提供一个固定的位置,而另一个则只需要知道这个固定的位置。并去建立两者之间的联系,然后完成数据的通讯就可以了,这里提供固定位置的通常称为服务器,而建立联系的通常叫做客户端,基于这个简单的模型,就可以进入网络编程啦。 Continue reading »
Yahoo!的 Exceptional Performance团队为改善 Web性能带来最佳实践。他们为此进行了一系列的实验、开发了各种工具、写了大量的文 章和博客并在各种会议上参与探讨。最佳实践的核心就是旨在提高网站性能。
原文地址:http://developer.yahoo.com/performance/rules.html
中文转载地址:http://blog.csdn.net/alex86gbk/archive/2009/08/13/4438506.aspx
Excetional Performance 团队总结出了一系列可以提高网站速度的方法。可以分为 7大类 34条。
包括内容 、服务器 、 CSS 、 JavaScript 、Cookie 、图片 、移动应用 ,七部分。
其中内容部分一共十条建议:
转载地址:http://www.lifevv.com/sysdesign/doc/20071211214255251.html
GRASP是General Responsibility Assignment Software patterns(通用职责分配软件模式)的简称,它的核心思想是“职责分配(Responsibility Assignment)”。GRASP提出了几个基本原则,用来解决面向对象设计的一些问题。
Craig Larman氏在《Applying UML and Patterns》一书中提出了GRASP设计模式的概念。作者称其为设计模式,其实,更好的理解应该为设计原则。因为,与GoF等设计模式不同的 是,GoF等设计模式是针对特定问题而提出的解决方法,而GRASP则是站在面向对象设计的角度,告诉我们怎么样设计问题空间中的类与它们的行为责任,以 及明确类之间的相互关系等等。GRASP可以说是GoF等设计模式的基础。
GRASP概要
GRASP是General Responsibility Assignment Software patterns(通用职责分配软件模式)的简称,它的核心思想是“职责分配(Responsibility Assignment)”,用职责设计对象:”Designing Objects with Responsibilities”。它包含了9个基本模式:
1,信息专家 (Information expert)
2,创建者 (Creator)
3,高内聚 (High Cohesion)
4,低耦合 (Low coupling)
5,控制器 (Controller)
6,多态性 (Polymorphism)
7,纯虚构 (Pure Fabrication)
8,间接性 (Indirection)
9,变化预防 (Protected Variations)
GRASP的主要特征:
– 对象职责分配的基本原则。
– 主要应用在分析和建模上。
GRASP的核心思想的理解:
自己干自己的事(职责的分配)
自己干自己的能干的事(职责的分配)
自己只干自己的事(职责的内聚)
所谓面向对象设计,就是在系统设计的过程中,通过把系统分成相对独立但又互相联系的对象组合的一种设计方法。
对象具有属性和 行为,对象间通过消息进行交互(协作)。
面向对象设计一般有以下几个关键步骤:
1,发现对象。找出系统应该由哪些对象构成。
2,对象的属性。对象具有哪些属性。
3,对象的行为。对象具有 哪些行为,或者说对象需要做什么,它的职责是什么。
4,对象的关系。对象与对象之间的关系是什么,怎样进行交互,协作等等。
发现对象
对象的发现超出了本文的讨论范围。我们简单地介绍一下对象发现的过程与手段。
一般意义上的对象是现实世界上物体的抽 象。也就是说,现实世界里有什么物体,就有什么对象;物体存在什么属性,对象就有什么属性。
我们可以用“名词筛选法”来发现系统的对象。
比 如,一个学生考试成绩管理系统,有以下简单的用例:
– 管理员创建题库(把题条加入题库)
– 系统根据管理员输入的某些条件随机生成试题
– 学生成绩入库与管理
我们可以通过字面意思找出名词,就可以找出“管理员”,“题条”,“题库”,“试题”,“学生”,“学生成绩”等几个对象。
一 般通过这种方法(名词筛选法)就可以找出系统的绝大部分对象。
对象行为
行为是对象应该执行的动作,也就是对象的职责。对象具有哪些职责呢?相对于上面所说的“名词筛选法”,可以简单地用“动词筛 选法”来发现“对象的行为”。
比如,上面的“学生考试成绩管理系统”一例中,有“创建题库”,“输入(条件)”,“生成试题”,“成绩入库”, “成绩管理”等动词,也就是说,系统的对象至少具有以上这些行为(或职责)。
有时,我们可能还会发现某些“行为”的粒度过大,这时,可以通过进一 步细化用例的描述,来发现更多更细的“行为”。这里不再详述。
问题1:找出对象的行为(职责)之后,怎么样分配这些行为呢?也就是说怎么 确认“行为”属于哪个对象呢?
对象关系
系统的所有对象不可能是一个个单独存在毫无关系的个体,它们或多或少的有着各种联系(协作关系)。
问题2: 如果2个对象之间有协作关系,他们之间最好通过什么样的方式协作呢?
对象扩展特性
问题3:已经被抽象出来的对象,如何面对将来可 能发生的变化呢?
GRASP提出9个基本模式,用于解决以上设计过程中遇到的各种问题。
一直比较模糊下面几个概念,今天在网上看到,摘录如下:
一种叫法)
者都不同
Debugging工具
1、 Firebug
Firebug是firefox下的一个插件,能够调试所有网站语言,如Html,Css等,但FireBug最吸引我的就是javascript调试功 能,使用起来非常方便,而且在各种浏览器下都能使用(IE,Firefox,Opera, Safari),简直难以置信。除此之外,其他功能还很强大。比如html,css,dom的察看与调试,网站整体分析等等。总之就是一整套完整而强大的 WEB开发工具。做的太牛了。再有就是开源的,前途不可限量阿。
Firebug官网:http://getfirebug.com/
在javascript中支持断点调试,在css的查看中对属性值更改会马上看到效果(也算是 对css的调试吧),而且可以方便的看到是哪个css,功能是强大的没的说!在控制台还会像终端一样的输出运行的异步请求啊,哪个地方解析的时候出错了, 开启方便,在开启以后可以用直接打开编辑器编辑对应的文件。
总体的印象是简约而不简单,十分适合编程人员使用! Continue reading »