上一页 1 ··· 3 4 5 6 7 8 下一页
摘要: .Net提供了接口,这个不同于Class或者Struct的类型定义。接口有些情况,看似和抽象类一样,因此有些人认为在.Net可以完全用接口来替换抽象类。其实不然,接口和抽象类各有长处和缺陷,因此往往在应用当中,两者要结合来使用,从而互补长短。 接下来先说说抽象类和接口的区别。 区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。这些听起来有些虚,举个例子。例如,狗是对于所有狗类动物的统称,京哈是狗,牧羊犬是狗,那么狗的一般特性.. 阅读全文
posted @ 2013-09-24 13:29 红宝石 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 1.如果可能尽量使用接口来编程.NET框架包括类和接口,在编写程序的时候,你可能知道正在用.NET的哪个类。然而,在这种情况下如果你用.NET支持的接口而不是它的类来编程时,代码会变得更加稳定、可用性会更高。请分析下面的代码:private void LoadList (object []items,ListBox l){ for(int i = 0; i < items.Length; i++) l.Items.Add(items[i].ToString());}这个函数从一个可为任何对象的数组中加载ListBox,这段代码被限定为只能使用数组。假想过些时候你发现那些对象存在数据库中, 阅读全文
posted @ 2013-09-06 16:57 红宝石 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 当用户试图通过 HTTP 或文件传输协议(FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码。该状态代码记录在 IIS 日志中,同时也可能在 Web 浏览器或 FTP 客户端显示。状态代码可以指明具体请求是否已成功,还可以揭示请求失败的确切原因。 编辑本段HTTP下IIS状态码1xx - 信息提示这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。100 - 继续。101 - 切换协议。2xx - 成功这类状态代码表明服务器成功地接受了客户端请求。200 - 确定。客户端请求已 阅读全文
posted @ 2013-09-06 14:39 红宝石 阅读(167) 评论(0) 推荐(0) 编辑
摘要: file://分析这段程序,并解释一下,着重讲讲synchronized、wait(),notifyclass ThreadA{public static void main(String[] args){ThreadB b=new ThreadB();b.start();System.out.println("b is start....");synchronized(b)//括号里的b是什么意思,起什么作用?{try{System.out.println("Waiting for b to complete...");b.wait();//这一句是什 阅读全文
posted @ 2013-09-06 09:08 红宝石 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 下面是摘录CSDN上的有关粗粒度和细粒度的讨论:A:個人理解:對象的粒度就是對象所容納的邏輯 粗粒度容納的邏輯多,細粒度容納的邏輯少B:轻量级和重量级应该是按占用的资源多少衡量的B:对客户暴露了太多细节的相对来说就是细粒度的,比如你的一个Java Bean,为它所有属性都提供了getter,setter方法,就是属于细粒度的,而如果提供类似 Object getData(),或者setData(Object o)这样方法的类就是粗粒度的,个人意见,仅供参考.C:还是不太明白,你这里Object getData()和setData(Object o)方法中的Object对象不也隐含的暴露了细节吗 阅读全文
posted @ 2013-09-06 09:00 红宝石 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 粗粒度和细粒度的区别主要是出于重用的目的,像类的设计,为尽可能重用,所以采用细粒度的设计模式,将一个复杂的类(粗粒度)拆分成高度重用的职责清晰的类(细粒度).对于数据库的设计,原责:尽量减少表的数量与表与表之间的连接,能够设计成一个表的情况就不需要细分,所以可考虑使用粗粒度的设计方式.简单点,给你两个接口,你看看细粒度的查询任务的接口interface TaskService{ public List getTaskById(int id); public List getTaskByName(String name); public List getTaskByAge(int age);}那 阅读全文
posted @ 2013-09-06 08:58 红宝石 阅读(644) 评论(0) 推荐(0) 编辑
摘要: 尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(Garbage Collection),但是我们还是应该了解它们,以优化我们的应用程序。同时,还需要具备一些基础的内存管理工作机制的知识,这样能够有助于解释我们日常程序编写中的变量的行为。在本文中我将讲解栈和堆的基本知识,变量类型以及为什么一些变量能够按照它们自己的方式工作。在.NET framework环境下,当我们的代码执行时,内存中有两个地方用来存储这些代码。假如你不曾了解,那就让我来给你介绍栈(Stack)和堆(Heap)。栈和堆都用来帮助我们运行代码的,它们驻留在机器内存中,且包含所有代码执行所需要的信息。* 栈 阅读全文
posted @ 2013-09-04 17:56 红宝石 阅读(190) 评论(0) 推荐(0) 编辑
摘要: C#中事件是一种特殊的委托class Publisher //出版社 { public delegate void Publish();//声明事件所需的代理 public event Publish OnPublish;//事件的声明 public void issue()//触发事件 { if (OnPublish != null) { Console.WriteLine("发行刊物"); OnPublish(); } } } class Subscriber//订阅者 { public void Receive()//在事件订阅者中定义事件处理程序 { Console 阅读全文
posted @ 2013-09-03 18:10 红宝石 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 在C#4.0之前需要执行一个复杂的异步操作时,只能使用CLR线程池技术来执行一个任务。线程池执行异步任务时,不知道任务何时完成,以及任务的在任务完成后不能获取到返回值。但是在C#4.0中引人了一个的任务(System.Threading.Tasks命名空间的类型)机制来解决异步操作完成时间和完成后返回值的问题。1.使用Task类创建并执行简单任务 通过使用Task的构造函数来创建任务,并调用Start方法来启动任务并执行异步操作。创建任务时,必须传递一个Action或Action类型的委托回调方法,可以选择的传递任务执行时说需要的数据对象等。Task类的构造函数如下: publi... 阅读全文
posted @ 2013-09-02 16:35 红宝石 阅读(1290) 评论(0) 推荐(0) 编辑
摘要: 最开始收到大家想了解《搭建测试环境》这个topic的时候我有点困惑, 我们有关于《搭建测试环境》的培训, 网上的资料也很多, 现成的文档也很多, 大家还想了解什么呢? 后来想了想, 还是决定给大家说说测试环境对咱们测试结果的影响, 所起到的作用, 平时咱们可能更多的是搭环境或者是考原理, 可能大家不是很了解为什么要这么弄, 今天就给大家串一串线.搭建测试环境是软件测试实施的一个重要阶段,测试环境适合与否会严重影响测试结果的真实性和正确性。测试环境包括什么?简单的说测试环境就是软件运行的平台, 即软件、硬件、网络、测试数据四种元素的合集, 也就是说: 测试环境=软件+硬件+网络+测试数据硬件包括 阅读全文
posted @ 2013-09-02 12:39 红宝石 阅读(1758) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 下一页