摘要:
如何使用eclipse打开已有工程 在开始使用Eclipse的时候,会发现一个问题,那就是如何打开一个现有的Eclipse工程,开始在菜单中找了好久也没找到。 其实,Eclipse生成的结果不像VC,Jcreator那样可以直接打开,若要打开非workspace文件夹下的其他已有工程,可以打开菜单file->import→general→existing project into space.在select root directory中选中要打开的文件夹即可。此时如果选择copy existing project into workspace就会同时将文件拷贝到workspace下。这 阅读全文
摘要:
MVC模式百科名片 MVC模式MVC架构是"Model-View-Controller"的缩写,中文翻译为"模型-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。目录MVC简介 MVC的产生 MVC设计思想 视图 模型 控制MVC设计模式的实现 ASP NET MFC JavaMV 阅读全文
摘要:
python的string和PyQt的QString的区别python string和PyQt的QString的区别 以下在Python2.6和PyQt4.4.4 for Python2,6环境下讨论: Python中有两种有关字符的类型:Python string object和Python Unicode object。主要使用Python string object进行数据输入 python string和PyQt的QString的区别以下在 Python2.6和PyQt4.4.4 for Python2,6环境下讨论:Python中有两种有关字符的类型:Python string ob 阅读全文
摘要:
这几天看了Design patterns explain.收获很大,结合之前看的Head First Pattern、敏捷软件开发,写写读书笔记:本书作者希望我们用全新的观点来看待面向对象设计:面向对象设计开发,对象是中心,因此如何理解对象是最重要的:1、理解对象是一个职责体,从高处看,系统解构成不同的职责体,各司其责,自己要对自己负责,做完做好所有应该做的事,也不要越俎代庖帮别人做事,别人的事让别人自己做,需要的参数通过接口传递过去就可以了,仅最大努力保持对象的独立性、内聚性。2、理解对象的目的是隐藏,隐藏一切需要隐藏的东西,不仅仅是对象、方法。主要是隐藏变化、隐藏具体实现、隐藏代理、委任等 阅读全文
摘要:
一、对象发现对象检查对象的职责CRC 类-职责-协作确定对象层次结构发现对象属性发现对象操作二、设计指南1、整体把握2、封装最大化封装 最小化耦合 分离GUI3、设计类类需要有一个目的,有自己的职责类有良好的属性: 定义一些操作给其他类使用,或自己作为一个结构供其他类使用关联与继承类不能什么事都做:不要把一个类弄得太大4.继承is a 测试:都必须能通过is a 测试,即保证基类能被子类向上转型。将属性和操作尽可能上移:共有方法和属性别把属性和方法移到太高的位置:不是共有的属性不要放到超类中发现超类三、通用指南名字重要一次做一件事不要重新发明轮子不会一次就搞定简洁性您的软件不会消失 阅读全文
摘要:
贪图delphi gui的rad,使用了P4D做胶水,结果苦不堪言,P4D的方式就像一堆零件还要自己去配,配上了还不好用,调用过程及其难受啊,决定放弃。还是老老实实用pyqt,至少这是一个python的实现。 阅读全文
摘要:
继承对面向对象来说可能有先入为主的影响, 常使人认为继承代表了多态,代表了抽象,代表了面向对象。面向对象其实是说从对象的观点来思考问题,即一切都是对象。并不是说面向对象就必须要有上下级的层次关系,必须有基类,他只是一种看待问题的方式。继承会增加层次和layer,layer一多就不好控制,继承带来了接口污染和不必要的复杂度,每增加一层就使得下层的类需要担心更多问题,upcast也就越难。组合将结构扁平化,更加容易符合设计的几大原则,也更加符合面向接口的思想,因为组合将职责分离了,运行时需要哪个再组合,更容易产生内聚性强的类,使得复用性大大增加。继承则由于继承的关系将行为限制在了基类,任何继承于它 阅读全文
摘要:
OCP,SRP,DIP,LSP,SIP 的设计原则又归为一个原则:一切为了抽象,因为抽象才好降低复杂度。面向接口是什么,接口一个规范,使用接口的client不需要知道这个接口究竟是由谁实现,怎么实现的,实现者也不知道是谁调用了它,达到解耦的目的。OCP: 为了close于不变的抽象SRP: 为了接口职责的单一抽象DIP: 为了上层和下层仅依赖于抽象的中间层LSP: 为了最大化抽象能力SIP: 为了将不同职责分离成单个分开的抽象接口 阅读全文
摘要:
今天下午帮助诺西的工程师解决了一个网络的小故障,回来的路上回想了整个解决问题的过程,发现解决问题的思路和软件工程的解决问题的方法是一致的,基本上就是一个套路,方法论是抽象于技术之上的。问题是这样的:前天下午我们网管局域网突然出现大量丢包,网络严重阻塞,到其中一个机房的数据通信全阻。整个局域网处于一个广播域,我的机子也在这个广播域中,也受到影响。不多说直接上wireshark,抓包结果发现大量的Ethnet II的包,源和目的地址都是mac地址,协议unknown,很显然是这是个广播风暴。由于到那个机房最严重,完全不通,无法维护软交换设备了,叫上公司的车赶到机房先看看再说。打开机柜门,诺西厂家最 阅读全文
摘要:
最难的不是理解设计模式,而是在实际项目中灵活应用它们,设计模式看似简单,用起来却不知从何下手。理论是用来实践的,实践才能出真理。设计模式属于OO的一部分, Gof的23种模式只不过是设计模式的沧海一粟,不同的领域都会产生不同的设计模式,当然你也可以总结出自己的设计模式。对于学习设计模式的方法,我们不需要一开始就花很长的时间把它们都读通读透,只要花个十几天每天两个小时对每个模式有个简单的印象就可以了,然后在实际工作中去应用,去把它们读通读透。其实,只要你的OO能力达到一定的程度,设计模式都是无师自通的。学习设计模式几个重要的问题?每一类设计模式都是为了解决某类特定的问题而产生的,要了解这些设计模 阅读全文