Welcome 微信登录

首页 / 软件开发 / 数据结构与算法

61条面向对象设计的经验原则

61条面向对象设计的经验原则

61条面向对象设计的经验原则2011-02-16(1)所有数据都应该隐藏在所在的类的内部。(2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。(3)尽量减少类的协议中的消息。(4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等]。(5)不要把实现细节(例如放置共用代码的私有函数)放到类的公有接口中。如果类的两个方法有一段公共代码,那么就可以创建一个防止这些公共代码的私有函数。...
程序员成长两年记——写给奋斗中的IT同行

程序员成长两年记——写给奋斗中的IT同行

程序员成长两年记——写给奋斗中的IT同行2011-02-16萨特我不打算在这儿像记流水帐似的,故意逼着自己为这两年写下点什么.我只想说出一些真实的感受,使自己更加清晰的面对未来的日子.也借以此文,献给即将或已经在奋斗中的IT同行.踏入软件这一行,纯粹是一次偶然.开始我根本不喜欢做软件,也不打算搞这个.老板给了我一个貌似研究性很强的课题来做,我几乎把所有的时间都花在课题上,天天看书、做实验,偶尔在各大论坛上看看热闹.结果论文确实做得不错,也发表了一些文章(如...
有助于提升编程水平的十件事

有助于提升编程水平的十件事

有助于提升编程水平的十件事2011-02-16 CSDN 我们一直努力又努力去掌握那些对于我们来说是全新的东西。那么,我们做什么来帮助学习?下面是一个关于如何使你编程更迅速合理的10件事情的列表。我更习惯与使用Ruby on Rails,但下面的观点也适用于其他环境。1.升级单元测试你的编程没有测试?你应当随时进行测试,即TATFT ( testing all the fucking time )。当然你应当选择比仅是单元测试更好的方式。RSpec和Sho...
如何进行软件架构设计?

如何进行软件架构设计?

如何进行软件架构设计?2011-02-16 bea 张明星上次有幸给大家介绍了软件架构设计的“七种武器”,对于这“七种武器”的修炼是一个漫长的过程,除了需要不断的学习理论、原理之外,还要不断的在软件架构设计的工作中去实践,而且这样的实践机会有限,因为毕竟公司的项目就那么多,失去一次这样的机会就只有等下一个项目了,所以我想在这里就具体怎样进行软件架构设计提供一些思路和方法给大家,希望能对大家在软件架构设计的工作...
利用SOA简化业务流程 - 使用WebLogic Workshop 8.1快速构建业务流程

利用SOA简化业务流程 - 使用WebLogic Workshop 8.1快速构建业务流程

利用SOA简化业务流程 - 使用WebLogic Workshop 8.1快速构建业务流程2011-02-16David Hritz在 BEA WebLogic Workshop 8.1 中,构建面向服务的架构 (SOA) 目前已成为一项简单的任务。BEA 提供了一种机制,用于可视化地创建复杂的业务流程和服务。在下面的内容中,我将指导您一步一步地创建抵押代理公司的流程。希望本文能让您深入了解如何利用 WebLogic Workshop 的强大功能构建面向服...
设计模式学习笔记(十五)—State模式

设计模式学习笔记(十五)—State模式

设计模式学习笔记(十五)—State模式2011-02-27 blogjava 蝸ゼ牜ご赽跑一、State模式定义:允许一个对象在其状态改变时,改变它的行为。看起来对象似乎修改了它的类。二、模式解说State模式主要解决的是在开发中时常遇到的根据不同的状态需要进行不同的处理操作的问题,而这样的问题,大部分人是采用switch-case语句进行处理的,这样会造成一个问题:分支过多,而且如果加入一个新的状态就需要对原来的代码进行编译。State模式采用了对这些...
设计模式学习笔记(十六)—Proxy模式

设计模式学习笔记(十六)—Proxy模式

设计模式学习笔记(十六)—Proxy模式2011-02-27 blogjava 蝸ゼ牜ご赽跑一、Proxy模式定义:为其他对象提供一种代理以控制这个对象的访问。二、模式解说Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在...
设计模式学习笔记(十七)—Memento备忘录模式

设计模式学习笔记(十七)—Memento备忘录模式

设计模式学习笔记(十七)—Memento备忘录模式2011-02-27 blogjava 蝸ゼ牜ご赽跑一、模式定义:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存前的状态。二、模式解说在程序运行过程中,某些对象的状态处在转换过程中,可能由于某种原因需要保存此时对象的状态,以便程序运行到某个特定阶段,需要恢复到对象之前处于某个点时的状态。如果使用一些公有接口让其它对象来得到对象的状态,便会暴露对象的...
设计模式学习笔记(十八)—Mediator中介者模式

设计模式学习笔记(十八)—Mediator中介者模式

设计模式学习笔记(十八)—Mediator中介者模式2011-02-27 blogjava 蝸ゼ牜ご赽跑一、模式定义:用一个中介者对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。二、结构图1) 抽象中介者:定义同事(Colleague)对象到中介者(Mediatior)对象的接口,通常是一个事件方法。2) 具体中介者:具体中介者实现抽象中介者声明的方法。知晓所有的具体同事类,从具体同事接收...
设计模式学习笔记(十九)—Chain of Responsibility职责链模式

设计模式学习笔记(十九)—Chain of Responsibility职责链模式

设计模式学习笔记(十九)—Chain of Responsibility职责链模式2011-02-27 blogjava 蝸ゼ牜ご赽跑由于本人水平有限,写出来的东西也许对初学者有所帮助。如果不小心哪位大侠看了不要见笑,哪里有不正确的地方还请批评指正。好了不说废话了。Chain of Responsibility模式定义:为了避免请求的发送者和接收者之间的耦合关系,使多个接受对象都有机会处理请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处...
设计模式学习笔记(二十)—Visitor访问者模式

设计模式学习笔记(二十)—Visitor访问者模式

设计模式学习笔记(二十)—Visitor访问者模式2011-02-27 blogjava 蝸ゼ牜ご赽跑Visitor模式定义:表示一个作用于某对象结构中各元素的操作。它可以使你不修改各元素类的前提下定义作用于这些元素的新操作,也就是动态的增加新的方法。Visitor模式结构图:Visitor模式中主要角色:1)访问者角色(Visitor):为该对象结构(ObjectStructure)中的具体元素提供一个访问操作接口。该操作接口的名字和参数标识了要访问的具...
设计模式学习笔记(二十一)—Composite模式

设计模式学习笔记(二十一)—Composite模式

设计模式学习笔记(二十一)—Composite模式2011-02-27 blogjava 蝸ゼ牜ご赽跑今天开始学习Composite模式,首先让我们看一下它的定义:将对象组合成树形结构以表示“整体—部分”的层次结构。Composite模式使单个对象和组合对象的使用具有一致性。下面给出这个模式的结构图:如果把Composite模式看成是树形结构的话,那么它主要角色有:1)树干角色(Component):该角色是一个抽象类,...
设计模式学习笔记(二十二)—FlyWeight享元模式

设计模式学习笔记(二十二)—FlyWeight享元模式

设计模式学习笔记(二十二)—FlyWeight享元模式2011-02-27 blogjava 蝸ゼ牜ご赽跑一、FlyWeight模式定义:运用共享技术有效地支持大量细粒度对象。二、模式解说也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。在Flyweight模式中,由于要产生各种各样的对象,所以在Flyweight(享元)模式中常出现Factory模式。Flyweight的内部状态是用来共享的,Flyweight...
如何提高自己的编程水平

如何提高自己的编程水平

如何提高自己的编程水平2011-02-27不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。1. 扎实的基础。、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想...
如何有效编写软件的75条建议

如何有效编写软件的75条建议

如何有效编写软件的75条建议2011-02-271.你们的项目组使用源代码管理工具了么?应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。2.你们的项目组使用缺陷管理系统了么?应该用。ClearQuest太复杂,我的推荐是BugZilla。3.你们的测试组还在用Word写测试用例么?不要用Word写测试用例(Test Case)。应该用一个专门的系统,可以是Test Manager,也可以...
使用EMMA测量测试覆盖率

使用EMMA测量测试覆盖率

使用EMMA测量测试覆盖率2011-02-27 IBM 梁 衍轩介绍测试代码覆盖率的重要性测试驱动开发(TDD)是极限编程的一个重要特点,它具有很多优点,并被越来越多的开发人员所接受。在测试驱动开发过程中,程序员经历了编写测试用例,实现功能,重构代码这个不断迭代的过程。实践证明,这个过程能显著提高我们的生产效率,并产生高质量的代码。它还能给我们以自信,让我们放心的重构自己的代码。测试代码确实能够保证代码的质量,但如果你以为自己已经写了一堆测试用例,并都能运...
软件测试工具Loadrunner调用Java类

软件测试工具Loadrunner调用Java类

软件测试工具Loadrunner调用Java类2011-02-27最近公司需要测试几个具有一定功能类的性能,虽然我觉得这已经是白盒测试的范畴了,但是领导要求这样做,我也就只好进行技术的研究.要求就是能够传参数给类,并且可以接收到类返回的参数,并且进行正确与否的判断。第一步,总的思路。以前我都是用loadrunner直接进行录制,但是有些协议的确不好弄不知道怎样进行录制,像vb,c++,java语言做的东西我觉最简单的方式就是直接调用相关的类文件,动态链接库...
如何提高功能自动化工具在实际工作的覆盖

如何提高功能自动化工具在实际工作的覆盖

如何提高功能自动化工具在实际工作的覆盖2011-02-27在工作中,对于功能自动化到底应该覆盖到什么比例?我来发表一下自己的看法。现在无论做什么都讲究投入产出比,做测试自然也一样。先说一下功能自动化测试优点与缺点:一、优点:1、测试效率高,可以在较少的时间内运行更多的测试。2、测试过程可完全重现。3、对程序的回归测试更方便。复用性好的测试脚本,可以很方便的用于各种回归测试,节约了大量的资源。4、具有一致性和可重复性。二、缺点:1、前期耗用的工作量较大,自动...
<< 11 12 13 14 15 16 17 18 19 20 >>