2012-07-15 22:25
⁄ 工业·编程
⁄ 共 490字
头五项原则是关于类设计的,它们是:
◆ SRP,单一职责原则,一个类应该有且只有一个改变的理由。 ◆ OCP,开放封闭原则,你应该能够不用修改原有类就能扩展一个类的行为。 ◆ LSP,Liskov替换原则,派生类要与其基类自相容。 ◆ DIP,依赖倒置原则,依赖于抽象而不是实现。 ◆ ISP,接口隔离原则,客户只要关注它们所需的接口。
另外的六项是关于包的设计原则。在本文中,包...
软件开发阅读全文
2012-07-15 22:23
⁄ 工业·编程
⁄ 共 2047字
声明方法的存在而不去实现它的类被叫做抽象类(abstract class)。
不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。
不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都...
c++阅读全文
2012-07-15 22:13
⁄ 工业·编程
⁄ 共 1578字
开闭原则是面向对象设计中“可复用设计”的基石,是面向对象设计中最重要的原则之一,其它很多的设计原则都是实现开闭原则的一种手段。
1988年,Bertrand Meyer在他的著作《Object Oriented Software Construction》中提出了开闭原则,它的原文是这样:“Software entities should be open for extension,but closed for modification”。翻译过来就是:“软件实体应当对扩展开放,对修改关闭...
软件开发阅读全文
2012-07-15 22:05
⁄ 工业·编程
⁄ 共 3825字
单一职责就是指一个类应该专注于做一件事。现实生活中也存在诸如此类的问题:“一个人可能身兼数职,甚至于这些职责彼此关系不大,那么他可能无法做好所有职责内的事情,所以,还是专人专管比较好。”我们在设计类的时候,就应该遵循这个单一职责原则。
记得有人比喻过软件开发、设计原则、设计模式之间的关系就是战争、战略和战术的关系,关于设计模式实际上是设计原则的具体应用,以后我...
软件开发阅读全文
2012-07-15 22:02
⁄ 工业·编程
⁄ 共 631字
采用面向对象的分析和设计思想,为我们分析和解决问题提供了一种全新的思维方式。我们在拿到需求之后(略去OOA,以后补全),接下来的问题就是:如何对系统进行面向对象的设计呢? 按照软件工程的理论,面向对象的设计要解决的核心问题就是可维护性和可复用性,尤其是可维护性,它是影响软件生命周期重要因素。通常情况下,软件的维护成本远远大于初期开发成本。 一个可维护性很差的软件设计,人们通常称...
软件开发阅读全文
2012-07-15 21:54
⁄ 工业·编程
⁄ 共 4128字
很多的创业公司,一人身兼数职的情形还是很常见的。至少,我是经历过的,一个人包办了所有的开发过程,连测试我都做了,绝对的一条龙,但是经常踩钢丝、骑独轮车总会有失足的时候,结果有一次,从我手里发出去的光盘母盘,含有病毒僵尸,以至于被迫收回已经推上市场的2万张光盘,从那之后,我的心脏就开始变得无比坚强,现在就是整个后台服务都瘫痪了,我也只是微微一笑。其实,一个人身兼架构师和程序员,...
软件开发阅读全文
2012-07-15 21:50
⁄ 工业·编程
⁄ 共 4238字
关于面向过程的编程(OPP)和面向对象的编程(OOP),给出这它们的定义的人很多,您可以从任何资料中找到很专业的解释,但以我的经验来看,讲的相对枯燥一点,不是很直观。除非您已经有了相当的积累,否则说起来还是比较费劲。
我是个老程序员出身,虽然现在的日常工作更多倾向了管理,但至今依然保持编码的习惯,这句话什么意思呢?我跟大家沟通应该没有问题。无论你是在重复我走过的路,或...
软件开发阅读全文
2012-07-15 21:47
⁄ 工业·编程
⁄ 共 1741字
1、引言
计算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只是随着应用领域和方向的不同,产生了很多的分支,所以说编程并不是一件很困难的事情,一个高中生经过特定的训练就可以做得到。但是,会编程和编好程绝对是两码事,同样的程序员,有的人几年之后成为了架构师,有的人却还在不停地coding,只不过ctrl-c、ctrl-v用得更加纯熟了。在中国,编程人员最终的归途无外乎...
软件开发阅读全文
2012-07-14 23:15
⁄ 工业·编程
⁄ 共 386字
之前没有使用过Rich Edit控件,以为它的使用方法和Edit Box一样。我建了一个单文档工程A,由A的一个菜单弹出对话框B,再由B的一个按钮弹出对话框C。
代码如下:
void B::OnButton1()
{
CCdlg dlg;
dlg.DoModal();
}
但是单击对话框B的按钮,对话框C一直没有弹出来.我很纳闷. 开始我以为是因为对话框C的控件太多了.对话框C有11个Edit控件,一个rich Edit控件,3个combo box,14个static text,3个按钮。为了证实我的想法,我又新建...
VC阅读全文
2012-07-14 23:13
⁄ 工业·编程
⁄ 共 3991字
在软件行业中,个人觉得每个Coder、Leader(那些当了Leader以后就不需要Code的除外)都应该除了具有良好的编码能力以外,最为主要的就是Debug的能力要坚实。千万不要告诉我Debug工作是Tester和QA的事情,首先你要认识到Debug的能力是一个并不简单的能力,能帮助你提高你的开发能力,加快开发速度,节约开发成本;其次你更应该知道,你所掌握的Debug的能力和技术并不可能抢去Tester或者QA的饭碗,他们做的工...
软件开发阅读全文