自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

C# .NET 基本概念

1. private、 protected、 public、 internal 修饰符的访问权限。 private : 私有成员, 在类的内部才可以访问。protected : 保护成员,该类内部和继承类中可以访问。public : 公共成员,完全公开,没有访问限制。internal: 在同一命名空间内可以访问。2. C#中的委托是什么?事件是不是一种委托?委托可以把一...

2011-07-31 13:59:00 86

设计模式之--责任链模式

在一些情况下,对一个消息(含事件)的响应和处理需要很多对象来参与,这些对象对消息的处理有前后顺序,形成一个处理链条,但对象是否真正处理消息有赖于在它之前的对象的处理策略,前一个对象处理后,后一个对象则不需参与处理,这就是责任链模式。现实中有很多类似的场景,比如上访,上访一般是从最基层的信访部门接受信访开始进行处理,如果下一级信访部门无法处理,则交给上一级部门进行处理,这样一级一级的处理,知道最高信...

2011-07-29 14:28:00 46

设计模式之--中介者模式

在很多情况下对象之间的交互是很复杂的,在开始设计的时候,你根本不知道它需要交互的对象是谁,是什么类型。我们知道如果要对象A与对象B之间能相互交互,A与B就会构成相互依赖,如果对象一多,这种依赖就会很复杂,况且很多时候我们都不知道需要互相交互的对象有哪些,因此,在设计的时候也没办法考虑这些情况。既然在设计的时候无法预先知道对象之间的交互具体情况,我们可以将这种交互放到一个“中间平台”进行,这个中间平...

2011-07-29 14:25:00 69

设计模式之--观察者模式

在日常生活中,有很多需要我们关注的事务(比如,股市,楼市等),这些事务我们可以称之为主题或者叫信息发布者,观察主题的目的是想了解主题的变化(消息)。一种方法当然是采用盯人策略,但这种方法有个固有的缺点,就是你盯住主题的时候,无法干其他事情,如果需要了解的主题比较多,这种办法就很麻烦了;另外一种就是主题广播,我想听的时候我就去听,不想听的时候我就不听,这种方式的好处就是可以使得观察者不用盯住主题,但...

2011-07-29 14:20:00 87

WCF RIA Services---学习记录(1)

客户端得实体能否进行插入,修改和更新,在于对应的services服务端是否有对应的函数,可用Delete,Insert,Update元属性标签来指定对应方法。这种控制,估计是WCF RIA services安全的一部分。实际上,也只是简单的标签化,至于你的实际插入,修改和删除采不采用这些函数是无关紧要的。但至少可以通过这种标签来确定客户端能对你暴露的实体做什么事情,有个控制机制。其实通过这种方...

2011-07-28 11:23:00 41

设计模式之--访问者模式

《设计模式》一书对于访问者模式给出的定义为:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。从定义可以看出结构对象是使用访问者模式必须条件,而且这个结构对象必须存在遍历自身各个对象的方法。设想一个场景,就是学校,学校里有老师和学生,老师和学生可以称为两种元素,我们可以对这些元素进行很多操作(注意,这些操作都是外部性质的,不属于元素本身,...

2011-07-28 09:18:00 78

设计模式之--命令模式

命令模式的意图一是将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;二是对请求排队或记录请求日志,以及支持可撤消的操作。简略图如下:命令模式通过对命令的封装,将命令的请求(调用者Invoker)和执行(接收者Receiver)进行了责任分离,委派给不同的对象,不仅使得调用者和执行者之间实现了解耦(命令的请求方就不需要知道接收方的接口,也不需要知道命令是如何执行的具体情况),还使...

2011-07-28 08:42:00 47

设计模式-门面模式

就象字面含义一样,门面模式的作用是为了简化用户对一系列相关对象及操作的使用。比如用户买包子,馒头一样,用户并不需要知道包子,馒头的制造过程和细节,也不需要进入厨房,而只需要在门面,向服务员进行购买,拿包子,找钱,打包的事情都有服务员来完成,用户最后只需要得到要买的东西和找零的钱即可。门面模式将一系列复杂而相关的操作封装成一个简单的操作接口。比如就编译子系统来说,有很多的操作如,词法扫描、语法分析...

2011-07-28 08:10:00 50

设计模式之--适配器模式.

在日常生活中,我们时常会遇到一些兼容性的问题,比如我的笔记本的电源插头就是欧标的,在很多场合我都没法用,买一个可以用的插座当然是可选手段,但到那里去都拿这么大个家伙一是不方便,二也未必有地方可以插,所以我只好买个电源适配插座带在身上。再比如电脑的输入电压一般都只有20伏左右,而日常电源基本都是220伏,所以就需要一个电源适配器,来降低电压。这些都是为了解决不同标准之间的兼容性问题。设计模式中的适...

2011-07-26 21:00:00 61

设计模式之--组合模式

有时候我们需要维护一些对象,这些对象具有一定的层次结构,它们之间虽然差异很大,但在使用的时候我们希望能构一致的对待,比如Windows控件,绘图中的图形等,这个时候我们就可以采用组合模式来进行管理。组合模式就是将要管理的对象按树型结构来进行组织,表示成一种“整体-部分”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式的结构图如下:角色: 组件接口:提供一致的访问接口,注意组...

2011-07-26 20:52:00 60

设计模式之-代理模式

代理模式(Proxy) ,英文又叫Surrogate。 代理在日常生活中很普遍,比如办身份证代理,产品销售代理,通信收费代理等,在计算机中也普遍存在,比如上网代理,远程调用代理,注册申请代理等。在代理过程中主要涉及的角色包括代理者,被代理者和事务,通过代理者和被代理者在是否参与事务,可以将代理分为职责代理和接口代理,所谓职责代理就是代理者完全行使被代理者的职责,被代理者不参与事务过程(至少在代理期...

2011-07-26 20:43:00 71

走出校园

走出了校园,开始了工作。已经半个多月了,今天周二,我自己都没有意识到周一是怎么过去的……累,迷茫,失落…………不管怎么样,要坚持。

2011-07-26 17:30:00 68

JAVA线程安全集合

java.util.concurrent提供了队列和三列表的高校实现:concurrentLinkedQueue和concurrentHashMap.copyOnWriteArrayList和copyOnWriteArraySet 是线程安全的集合。

2011-07-26 17:25:00 92

Java多线程 同步 锁 条件对象

每个进程都有它自己的变量的完备集,线程共享相同的数据。---这也是危险之处。线程创建和销毁的开销都比进程小。---这是好处。简单的,你只要实现Runnable接口,实现重载run()方法,来做自己想做的事情。然后就是开启一个线程,把你实现的类的对象传入:Runnable r = new myRunable(args[] a);Thread t = new Thread(r);t.sta...

2011-07-26 17:10:00 94

设计模式之-装饰模式

装饰的含义就是在原有的物件上增加饰品,使得物件能呈现出不同的特征。当然在类设计中,采用装饰模式,是用来为类增加新的特征和行为。结构如下: * * | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| * | Component |<-------------------------------------------------------------------| * |--------------------...

2011-07-25 22:27:00 53

设计模式之-策略模式

如果一个类(CA)的方法存在不同的算法(F),而这些算法用户都可能用到,那么就可以将这种算法独立出来自我演变,既提供一个算法的抽象接口,再定义具体的算法类,而CA保持对算法的一个引用,CA中的方法不直接实现算法,而是调用用户所选的算法类中的算法来实现,这就是策略模式。也既定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 * * | ̄ ̄ ̄ ̄ ̄...

2011-07-25 22:16:00 43

设计模式之-桥模式

顾名思义,桥的作用就是将两条相互独立的路桥接到一起,而两条路可以保持各自的相对独立。在程序设计中,“桥”模式中的桥只是一种形象的比喻。根据桥模式的定义,桥模式实现了一个主题(可以是一个类,也可以是一中设计上的概念)的抽象部分和实现部分的分离(有的地方定义为抽象与具体行为的分离)。抽象部分的基类和实现部分的基类充就当着桥(接口对接)的作用,而抽象部分的子类和实现部分的子类就是桥两边的路,可以各自相对...

2011-07-24 21:11:00 70

学无止境,温故而知新

从开始学习这些常用的设计模式到现在有8年多时间了,每次回头看看这些设计模式都有新的收获,有新的理解,从实践中来,到实践中去,再到理论上来,如此反复,获益不少。也许是自己比较笨,又比较喜欢技术的缘故吧,这次把原来的笔记拿出来再看看,体会一下技术发展的脉络,希望能有所收获。作为一位Coder,也以此纪念一下自己的码字母的人生。...

2011-07-22 22:21:00 72

怀念Delphi--希望它能雄起!

前些天跟一个人聊起我自己的一个系统,我说是delphi做的,他说那太落后了,然后说了一堆,我只能汗。虽然我现在主要在dotnet平台上做事情,但我对delphi还是有感情的,毕竟用了那么多年,而且至今我觉得从开发速度上来说,至少在桌面系统开发方面,无人能及。Delphi至少有几个地方还是非常的经典:1、UI组织,Delphi的Form是可以继承的,这个东东非常有用,在提高开发速度方面简直就一个...

2011-07-22 21:44:00 53

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

采用微软提供的silverlight+wcf ria service+ado.net entity或者是linqtosql对于开发小的,且业务逻辑不太复杂的系统来说确实很简单,也很快,在这两天的学习中,有些小体会,但采用已有的框架(比如,nhibernate,sprint.net等)一向来都不是我的风格,因为我比较喜欢可控性,虽然说这些框架都是非常好的东西,但毕竟:一、它们都是为全世界服务的,...

2011-07-22 20:59:00 48

设计模式之-原型模式

原型提供了另外一种创建对象的方式:通过已有的对象的自身提供的克隆功能来创建新的对象。这样做的好处很明显:1.使用克隆来创建对象的用户不需要知道对象的构造细节;2.性能上有利。但采用克隆来生成对象也要注意需要克隆的内容,如果采用全复制的话,有些业务上可能会产生逻辑错误,比如对象ID冲突等。克隆分为深度克隆和浅度克隆。一般来讲使用浅度克隆比较好,不会使得业务逻辑变得很复杂。=======...

2011-07-22 20:19:00 39

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

从形式上来讲,通过角色合并,方法功能的转变,抽象工厂可以和生成器模式形式上取得一致(比如抽象工厂只处理一个产品族,工厂方法都处理同一个产品)。但注意,这仅仅是形式上的,实际上,抽象工厂和生成器模式有着本质的区别:1、生成器模式是为了构造一个复杂的产品,而且购造这个产品遵循一定的规则(相同的过程),而抽象工厂则是为了创建成族的产品(系列产品),同族产品的构造在逻辑上并不存在必然的联系(唯一必然的...

2011-07-22 20:12:00 70

设计模式之-生成器模式

在产品结构比较复杂,构造过程比较繁琐,一次性构造比较难的时候,我们可以采取分而治之的原则,将产品组件化,每个组件由专门的厂商来生产,最后的产品指派给制定的车间进行最后装配.这种方式其实是现代制造业的一种典型的模式.比如汽车,飞机的制造等.这样做的好处是: 1.产品的部件由专门的生产厂商来生产,这样分工更加明确,更加精细,生产专业化,可以降低成本; 2.整个产品的生产更加简单,也可增加零件的复用....

2011-07-22 20:09:00 52

设计模式-单例模式

单例模式的目的是保证类在系统中只被实例化一次,由该唯一的实例来为系统提供服务.单例模式主要用于保证服务的统一,比如获取统一的编号服务,模仿Oracle的序列生成等.但单例的使用需要谨慎,特别是在需要作负载均衡的地方,因为这种程序级的单例模式实际上只能保证在一个应用中为单例.如果被多个应用加载,还是会被多次实例化. 同时如果采用懒汉式还需要注意线程安全. 多例模式跟单例模式类似,但在实现上要复杂很...

2011-07-22 20:03:00 42

简单工厂,工厂方法,抽象工厂之比较

创建模式的目的就是为了解决使用和生产责任分离,当然能使用这种模式的前提就是用户并不关心"产品"的创建逻辑和过程,用户只需要对创建的结果进行使用.在这种情况下,将使用和创建分离就增加了程序的灵活性,因为"产品"的构建对用户来说是透明的,如果需要对创建过程增加功能(比如增加创建权限检查),不会影响到用户的使用. 模式的应用有两个基本的目的,一是复用,二是适应变化.而且这两个目的在很大程度上也是统一 ...

2011-07-22 19:56:00 52

CS与BS技术的融合--业务系统开发的趋势

对于业务系统的开发而言,特别是大型的业务系统开发,利用CS架构开发,无论是用户体验还是开发速度上都有着很大的优势,但部署、应用范围及带宽都存在着很大的局限,虽然cs三层架构的引入,多多少好解决了一些问题,也还是存在着一些问题,特别是在界面美观上,CS理论上在UI上可以做得很好,但在这方面,BS程序有着与生俱来的优势,CS程序要做得美观,对于大型业务系统来说,有难度,而且显得有点不务正业。对于...

2011-07-21 13:44:00 172

设计模式之-工厂方法模式

从简单工厂模式我们可以看出,在简单工厂模式中,增加新的产品类,是需要修改工厂类的,这不符合开放-封闭原则.而且在写工厂类的时候必须知道具体产品类的细节.也不符合由上相下的设计原则,如果要延后关注细节,则必须利用继承或者接口的技术来实现.将简单工厂模式中的工厂抽象,增加抽象工厂角色,这样用户,抽象工厂,抽象产品,用户就形成了最顶层的设计层面,具体的实现由具体的工厂来创建具体的产品.着就是工厂方法模...

2011-07-21 07:35:00 51

设计模式之--简单工厂模式

角色:用户,工厂,产品.目的是使得用户将产品的消费和生产分开.在编程中就是将类的创建和使用分开.从而达到责任分离,其实这也是所有创建模式的目的之一.做法是工厂类根据用户的要求(参数)来返回不同的类的实例.工厂实现:采用参数化的静态方法为用户提供类实例的创建,如下所示:public static ProductType FactoryMethod(参数){ 根据参数返回需要类的实例.}...

2011-07-21 07:27:00 45

需求和设计也应该进行模拟运行。

在传统的软件开发模式中,系统模拟运行一般都只发生在软件实现以后,很少有人会在需求和设计阶段做这个事情。这其实是国内大部分大型软件系统开发失败,或者开发成功后用户却不买帐的原因。这个经验其实来之于我刚工作不久的一个ERP项目,整个ERP项目团队才4-5个人,由于第一次做这么大的项目,我们比较谨慎, 整个需求出来后,我们并没有急于设计和开发,而是针对我们的需求分析结果(简要的概要设计),我们与客户方的...

2011-07-11 22:24:00 89

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除