设计_Tag标签_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> 设计 >>列表
· Ruby 行为驱动设计 (RSPEC)发布时间:2012-09-08
你可能已经注意到,验证模对象改变了你在单元测试中执行的那类测试的本质。传统的单元测试中,通过断言(Assertion)来进行大多数的验证。这是一种对应用程序状态的测试。模对象的测试,是测试测试中调用过程十分符合预期。它测试的是应用程序的行为。至少潜在能力上,行为测试更容易将期望行为与实际的实现方法分开。行为驱动设计(BDD)的口号是试图将测试设计从实现空间移到问题空间。部分地使用设计BDD工具集,测试可以通过指定更接近自然语言的关键词来进行。BDD工具充分利用模对象,既作为说明问题的方法... 查看全文
声明:本文只为方便我个人查阅和理解,详细的分析以及源代码请移步原作者的博客http://chjavach.iteye.com/importjava.lang.reflect.InvocationHandler;importjava.lang.reflect.Method;importjava.lang.reflect.Proxy;/**下面的代码关注两种代理:*1.虚代理*2.保护代理*///订单类接口interfaceIOrder{voidsetName(Stringname)... 查看全文
最佳答案:主要是为了“效率”和“安全性”的缘故。若String允许被继承,由于它的高度被使用率,可能会降低程序的性能,所以String被定义成final。其它答案一:String和其他基本类型不同,他是个对象类型.既然是对象类型,如果是在静态方法下是必须调用静态方法或值的,如果是非静态的方法,就必须要实例化.main函数是个static的.所以String要能像其他的基本类型一样直接被调用.这也是为什么在main函数下使用String类型不会报告错误的原因..一下就解释了两个心里的疑问.... 查看全文
声明:本文只为方便我个人查阅和理解,详细的分析以及源代码请移步原作者的博客http://chjavach.iteye.com/publicclassSingleton{}classLazySingleton{privatestaticLazySingletoninstance;publicstaticLazySingletongetInstance(){if(instance==null){instance=newLazySingleton();}returninstance;... 查看全文
设计模式(六)——抽象工厂模式感冒了几天,没写。今天继续,上次写到工厂方法模式了,总的来说,工厂方法模式还是挺简单的,这次讲的抽象工厂模式,听名字也知道应该是与工厂模式是一脉相承的,顾名思义就是将工厂模式抽象化了,是的,木有错,就是这样,实质上就是在具体产品和具体实现工厂与各自接口中间再加入了一个抽象类,这样做有什么好处?废话,没好处我闲的那什么疼要多加一层?现在不说,写完一看就知道,然后这里引入两个专业概念:产品等级,产品族。其实很好理解,先记着,用到的时候讲。我们接着上一讲的例子... 查看全文
在做决策时,流程图是一个非常有用的工具,可以对某个问题给出一步接一步的解决方案。和其他类型的图表一样,流程图有助于可视化待解决的问题,故而可以让观察者理解流程,或许也能发现瑕疵、瓶颈或者其他不明显的问题。本文收集了10个极为有帮助的流程图。1.HTML5Elementflowchart2.Doyouneedanewlogo3.Aguidetofollowingpeopleontwitter4.Soyouneedatypeface5.Freelancetofreedom6... 查看全文
1.名称:一个模式的名称高度概括该模式的本质,有利于该行业统一术语、便于交流使用。2.问题:描述应该在何时使用模式,解释设计问题和问题存在的前因后果,描述再怎样的环境下使用设计该模式。3.方案:描述设计的组成部分、他们之间的相互关系各自的职责和协作方式。4.效果:描述模式的应用效果及使用模式应当权衡的问题。主要效果包括使用模式对系统的灵活性、扩充性和复用性的影响。参考书籍:www.csjcbzw.comwww.cccbz.com... 查看全文
· C++程序设计最佳实践发布时间:2012-04-25
随着计算机语言的发展,我们现在编写一个程序越来越容易了。利用一些软件开发工具,往往只要通过鼠标的拖拖点点,计算机就会自动帮你生成许多代码。但在很多时候,计算机的这种能力被滥用了,我们往往只考虑把这个程序搭起来,而不去考虑程序的性能如何,程序是否足够的健壮。而此节课的目的主要是介绍一些编码的经验,让大家编写的程序更加健壮和高性能。1、Preferconstandinlineto#define在C++编程中应该尽量使用const和inline来代替#define,尽量做到能不用#define就不用... 查看全文
单例模式属于对象创建型模式,其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点。对一些类来说,只有一个实例是很重要的,虽然系统中可以有许多打印机,但却只应该有一个打印机假脱机,只应该有一个文件系统和一个窗口管理器,一个数字滤波器只能有一个A/D转换器,一个会计系统只能专用于一个公司。怎样才能保证一个类只有一个实例并且这个实例易于被访问,一个全局变量使得一个对象可以被访问,但它不能防止你实例化多个对象,一个更好的方法是让类自身负责保存他的唯一实例。这个类可以保证没有其他实例可以被创建... 查看全文
概述文件上传和下载是Web应用中的一个常见功能,相信各位或多或少都曾写过这方面相关的代码。但本座看过不少人在实现上传或下载功能时总是不知不觉间与程序的业务逻辑纠缠在一起,因此,当其他地方要用到这些功能时则无可避免地Copy/Pase,然后再进行修改。这样丑陋不堪的做法导致非常容易出错不说,更大的问题是严重浪费时间不断做重复类似的工作,这是本座绝不能容忍的。哎,人生苦短啊,浪费时间在这些重复工作身上实在是不值得,何不把这些时间省出来打几盘罗马或者踢一场球?为此... 查看全文
以前看用java实现设计模式,很是头疼,那么多的java概念融合在里面,完全影响了对模式自身的理解。实现起来也是相当麻烦。但是在ruby中,模式理解起来是那么的容易,倒是觉得使用ruby来理解设计模式挺靠谱的。先介绍一种模式-观者者模式。百度百科名片写道观察者<Observer>模式(有时又被称为发布-订阅<Publish/Subscribe>模式、模型-视图<Model/View>模式、源-收听者<Source/Listener>... 查看全文
对于软件而言,层次是让人又爱又恨的东西。很多问题是通过增加层次解决的,但另外一部分问题也是因为层次而导入的。我们来分别看几个例子。例1:很多时候我们并不希望最终的应用绑定于某个指定平台,比如:Windows。为了达成这种跨平台的目的,就需要在OS和应用之间加入一个中间层,这个中间层负责屏蔽不同OS的差异。实际上,Java虚拟机等走的都是这样一条路线。例2:当使用XML文件保存配置信息的时候,我们并不希望XML的结构在整个程序中随处可见。比如说... 查看全文
原文:http://tech.163.com/12/0402/03/7U2BMGKE000915BF.html3月31日,第四届CocoaChina开发者大会暨Cocos2d-x技术研讨会在北京剧院举行,人人网游戏开发工程师李成进行了主题为《基于cocos2d-x的游戏框架设计》的演讲。以下为实录主持人:大家在Cocos2d的社区里都会进行像今天这样的技术解决方案分享,但是都非常零散。接下来我们欢迎人人网游戏工程师里成,他演讲的题目是“基于Cocos2d-X的游戏框架设计”。李成:大家好... 查看全文
[本文是我对JavaConcurrencyInPractice5.6的归纳和总结.转载请注明作者和出处,如有谬误,欢迎在评论中指正.]几乎每一个应用都会使用到缓存,但是设计高效的线程安全的缓存并不简单.如:publicinterfaceComputable<A,V>{Vcompute(Aarg)throwsInterruptedException;}publicclassExpensiveFunctionimplementsComputable<String... 查看全文
· Java类设计技巧发布时间:2012-03-28
(该内容出自:Java核心卷,摘取出来跟大家分享分享!)1.一定将数据设置为私有。最重要的是:绝对不要破坏封装性。当数据保持私有时,他们的表现形式的变化不会对类的使用者产生影响,即使出现bug也易于检测。2.一定要对数据初始化。Java不对局部变量进行初始化,但是会对对象的事例域进行初始化。最好不要依赖于系统的默认值,而是应该显示地初始化所有的数据,具体的初始化方式可以是提供默认指,也可以是在所有的构造器中设置默认值。3.不要在类中使用过多的基本数据类型。就是说... 查看全文
· Java中单例设计模式的代码实现发布时间:2012-03-23
因为在Java中使用单例设计模式代码实现,遇到些问题,故Google了一下。找到下面两篇blog,有所帮助。1.【转】单例模式完全剖析2.单例模式的七种写法... 查看全文
今天继续讲javaqq项目的详细设计,今天讲一下qq的安全模块,包括客户端安全模块和服务器接收请求并处理后返回结果以及两者协作的过程,以流程图的方式讲述一下客户端的安全模块流程及伪码如下:对在飞Q安全界面中,分为“安全概述”,“常见欺诈”,“修改密码”,“修改密保”;<1>安全概述安全概述概述了你当前飞Q的安全状况if(设置密保并且密码等级为良好以上){安全状况良好请继续保持良好的习惯可立即完成设置密码}elseif(设置密保并且密码等级为中等以下)... 查看全文
今天继续讲javaqq项目的详细设计,今天讲一下qq的登录模块,包括客户端登录模块发送请求和服务器接收请求并处理后返回结果的过程,以流程图的方式讲述一下申请模块(客户端):对在qq申请信息界面中输入的各项信息进行账号申请。若发现错误,输入数据全部清空,以让用户重新输入一次。若未发现错误,转入账号申请成功界面。伪码如下:if(昵称为空){请输入昵称}elseif(密码格式错误(小于6或大于20)){密码必须6-20个字符!密码框清空,重新输入}elseif(两次密码输入不匹配)... 查看全文
· 非关语言: 设计模式发布时间:2012-03-06
文章来源:Gossip@caterpillar程式设计是思维具体化的一种方式,是思考如何解决问题的过程,设计模式是在解决问题的过程中,一些良好思路的经验集成,最早讲设计模式,人们总会提到Gof的著作,它最早将经典的23种模式集合在一起说明,对后期学习程式设计,尤其是对从事物件导向程式设计的人们起了莫大的影响。后来设计模式一词被广泛的应用到各种经验集成,甚至还有反模式(AntiPattern),反模式教导您如何避开一些常犯且似是而非的程式设计思维。这边的话将整理一些设计模式学习心得... 查看全文
· 《Head First 设计模式》读书笔记发布时间:2012-03-02
1.策略模式(Strategy)定义算法,将他们分别封装起来,让他们可以相互替换,让算法变化对客户端透明。2.观察者模式(Observer)解耦一系列对象的通知状态。定义对象之间的一对多依赖,当一端对象发生变换,通知多端。3.装饰模式(Decorator)动态将责任附加到对象上。对扩展开放,对修改封闭。4.工厂模式(Factory)工厂方法:定义一个创建对象的接口,由子类实现这个接口决定怎样创建具体类。工厂方法把对象的创建延迟到子类。抽象工厂:定义一个接口,用于创建相关或依赖对象的家族... 查看全文