代码改变世界

silverlight学习日记--第一个试水架构

2011-07-22 20:59 by java线程例子, 161 阅读, 0 推荐, 收藏, 编辑
摘要:采用微软提供的silverlight+wcf ria service+ado.net entity或者是linqtosql对于开发小的,且业务逻辑不太复杂的系统来说确实很简单,也很快,在这两天的学习中,有些小体会,但采用已有的框架(比如,nhibernate,sprint.net等)一向来都不是我的风格,因为我比较喜欢可控性,虽然说这些框架都是非常好的东西,但毕竟:一、它们都是为全世界服务的,想得太全就必然“不精”,而我的选择只需要对我自己的系统负责,那里面太多的东西对我来说要么没有用,要么就太累赘;二、东西是好,但毕竟被封起来了,要增加一些适合自己系统的快速开发功能,就不太容易了。通过这几天 阅读全文

设计模式之-原型模式

2011-07-22 20:19 by java线程例子, 138 阅读, 0 推荐, 收藏, 编辑
摘要:原型提供了另外一种创建对象的方式:通过已有的对象的自身提供的克隆功能来创建新的对象。这样做的好处很明显:1.使用克隆来创建对象的用户不需要知道对象的构造细节;2.性能上有利。但采用克隆来生成对象也要注意需要克隆的内容,如果采用全复制的话,有些业务上可能会产生逻辑错误,比如对象ID冲突等。克隆分为深度克隆和浅度克隆。一般来讲使用浅度克隆比较好,不会使得业务逻辑变得很复杂。===============================================================在实际开发中,对于实体类提供克隆方法有很多好处,比如,有的时候我们需要将获取的一系列实体修改部分关键字 阅读全文

设计模式之--生成器模式与抽象工厂模式的比较

2011-07-22 20:12 by java线程例子, 293 阅读, 0 推荐, 收藏, 编辑
摘要:从形式上来讲,通过角色合并,方法功能的转变,抽象工厂可以和生成器模式形式上取得一致(比如抽象工厂只处理一个产品族,工厂方法都处理同一个产品)。但注意,这仅仅是形式上的,实际上,抽象工厂和生成器模式有着本质的区别:1、生成器模式是为了构造一个复杂的产品,而且购造这个产品遵循一定的规则(相同的过程),而抽象工厂则是为了创建成族的产品(系列产品),同族产品的构造在逻辑上并不存在必然的联系(唯一必然的联系就是大家都属于一族)。2、生成器模式的构造方法是为了构造同一个产品,因此必须有指导者来协调进行工作,构造方法之间存在必然的业务联系,而抽象工厂的构造方法都是独立去构建自己的产品对象,因此他们不存在必然 阅读全文

设计模式之-生成器模式

2011-07-22 20:09 by java线程例子, 231 阅读, 0 推荐, 收藏, 编辑
摘要:在产品结构比较复杂,构造过程比较繁琐,一次性构造比较难的时候,我们可以采取分而治之的原则,将产品组件化,每个组件由专门的厂商来生产,最后的产品指派给制定的车间进行最后装配.这种方式其实是现代制造业的一种典型的模式.比如汽车,飞机的制造等.这样做的好处是: 1.产品的部件由专门的生产厂商来生产,这样分工更加明确,更加精细,生产专业化,可以降低成本; 2.整个产品的生产更加简单,也可增加零件的复用. 3.转换生产比较容易,比如产品的材质发生变化,只需要找相应提供该材质的厂商即可.这其实就是典型的生成器模式.生成器模式有4个角色:A.抽象生成器:提供生成器的抽象表达,具体的生成由子类完成.抽象生成器 阅读全文

设计模式-单例模式

2011-07-22 20:03 by java线程例子, 174 阅读, 0 推荐, 收藏, 编辑
摘要:单例模式的目的是保证类在系统中只被实例化一次,由该唯一的实例来为系统提供服务.单例模式主要用于保证服务的统一,比如获取统一的编号服务,模仿Oracle的序列生成等.但单例的使用需要谨慎,特别是在需要作负载均衡的地方,因为这种程序级的单例模式实际上只能保证在一个应用中为单例.如果被多个应用加载,还是会被多次实例化. 同时如果采用懒汉式还需要注意线程安全. 多例模式跟单例模式类似,但在实现上要复杂很多,需要维护自己的实例池和分配使用策略,还包括使用状态等的维护,多例模式主要用于有限个资源的管理,比如数据库连接池等。 下面是单例模式例子:using System;using System.Colle 阅读全文

一段网页中可自动点击运行的JS

2011-05-21 23:27 by java线程例子, 295 阅读, 0 推荐, 收藏, 编辑
摘要:以下代码可实现鼠标放在该链接后自动点击的效果,至于什么用处大家看着办吧,呵....开动你的大脑吧.<script language="JavaScript" type="text/JavaScript"> var autoclick_ok=false; var cishu = 1function mClk() { if(!autoclick_ok && cishu==1){ var source=event.srcElement;source.click(); cishu+=1;} } </script><f 阅读全文

JAVA功能代码《13》----在Java中调整数组大小

2011-05-21 17:18 by java线程例子, 234 阅读, 0 推荐, 收藏, 编辑
摘要:13.在Java中调整数组大小public class resizeArray { /** * Reallocates an array with a new size, and copies the contents of the old * array to the new array. * * @param oldArray * the old array, to be reallocated. * @param newSize * the new array size. * @return A new array with ... 阅读全文

JAVA功能代码《12》----使用NIO快速复制文件

2011-05-21 17:15 by java线程例子, 231 阅读, 0 推荐, 收藏, 编辑
摘要:12.使用NIO快速复制文件public static void fileCopy(File in, File out) throws IOException { FileChannel inChannel = new FileInputStream(in).getChannel(); FileChannel outChannel = new FileOutputStream(out).getChannel(); try { inChannel.transferTo(0, inChannel.size(), outChannel); // original -- apparent... 阅读全文

JAVA功能代码《11》----Java中将Array转换成Map

2011-05-21 17:14 by java线程例子, 315 阅读, 0 推荐, 收藏, 编辑
摘要:11.Java中将Array转换成Map下面是参考代码String[][] countries = { { "United States", "New York" }, { "United Kingdom", "London" }, { "Netherland", "Amsterdam" }, { "Japan", "Tokyo" }, { "France", "Paris" } }; Map c 阅读全文

JAVA功能代码《10》----Java获得目录列表

2011-05-20 17:50 by java线程例子, 134 阅读, 0 推荐, 收藏, 编辑
摘要:10.Java获得目录列表File dir = new File("directoryName"); String[] children = dir.list(); if (children == null) { // Either dir does not exist or is not a directory } else { for (int i = 0; i < children.length; i++) { // Get filename of file or directory String filename = children[i]; } }... 阅读全文