摘要:
1.设置web.config文件。 ...... ...... 或者:aspx文件中:2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。 >> 进行传递 string Name = "中文参数"; Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name)); >> 进行接收 string Name = Request.Que... 阅读全文
摘要:
在看李建忠老师的Proxy代理模式课程的时候,听他讲了一些有关String类型和StringBuilder类型的内容。对这两个类型的实现有了一些新的认识。 在以前我看过一些有关String类型的资料,对于String类型来说,它给我的印象是小心的去用,否则内存上会产生大量的垃圾。关键问题在于对String对象的修改方面。 当我们实例化一个String的对象后,在内存中为此对象分配一个空间。如下: ... 阅读全文
摘要:
前一段时间,因为工作的需要,学习了一些.net的部署。在打包的过程中遇到了几个问题: 1、 数据库脚本打包,如何修改Web.config文件中的数据联接 2、 数据库脚本中的方法和视图打包时要注意的问题 3、 如何使创建的快捷方式启动IE浏览器 对于如何打包,建立部署工程,MSDN和网上的一些资料说的很清楚,在这里不再赘述。针对上面两个问题提做一下总结: 1、 首先我们要生成数据库脚本,保... 阅读全文
摘要:
Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。如下图: 比如说C和A不在一个服务器上,A要频繁的调... 阅读全文
摘要:
Flyweight享元设计模式是一种结构型设计模式,它主要解决的问题是:由于(同类)对象的数量太大,采用面向对象时给系统带来了难以承受的内存开销。比如有这样一个场景:一个停车场中有1000辆汽车,我们所定义的汽车对象占用内存0.3M,那么要实例化1000辆就是300M。由此可见,在这种情况下采用一般的面向对象方式出现了大量细粒度的对象会很快充斥在系统中,从而带来很高的运行是代价(这里指的代价是内... 阅读全文
摘要:
Facade外观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。在这里我想举一个例子:比如,现在有一辆汽车,我们(客户程序)要启动它,那我们就要发动引擎(子系统1),使四个车轮(子系统2)转动。但是实际中我们并不需要用手推动车轮使其转动,我们踩下油门,此时汽车再根据一些其他的操作使车轮... 阅读全文
摘要:
Decorator装饰模式是一种结构型模式,它主要是解决:“过度地使用了继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀(多继承)。继承为类型引入的静态特质的意思是说以继承的方式使某一类型要获得功能是在编译时。所谓静态,是指在编译时;动态,是指在运行时。 GoF《设计模式》中... 阅读全文
摘要:
Composite组合模式主要是应对这样的问题:一类具有“容器特征”的对象——即他们在充当对象的同时,又是其他对象的容器的情况。在编写时我们常常会造成:客户代码过多地依赖于对象容器复杂的内部实现,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频繁变化,带来了代码的维护性、扩展性的弊端。 GoF《设计模式》中说到:将对象组合成树形结构以表示“部分-整体”的层次结构。Com... 阅读全文
摘要:
Bridge桥接模式是一种结构型模式,它主要应对的是:由于类型的固有罗辑,使得类型具有两个或两个以上的纬度变化。也就是要求抽象不应依赖于实现细节,实现细节应依赖于抽象。 《设计模式》中说到将抽象部分与实现部分分离,使他们可以独立的变化。 举个例子更清楚些,好像我们平时玩的游戏中有PS版的,但是不是大家都有PS。这时我们等一段时间,一般会出PC版的或其他版本。由于支持游戏... 阅读全文
摘要:
Adapter适配器模式是一种结构型模式,主要应对:由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是,新环境要求的接口是现存对象所不满足的。 《设计模式》中说道:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。 在实际的生活中有很多例子,如:我们常使用的移动硬盘,无论是笔记本硬盘... 阅读全文
摘要:
Prototype原型模式是一种创建型设计模式,它主要面对的问题是:“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口。感觉好像和前几篇所说的设计模式有点分不清,下面我们先来回顾一下以前的几种设计模式,予以区分,再来说说原型模式。 Singleton单件模式解决的问题是:实体对象个数问题(这个现在还不太容易混) ... 阅读全文
摘要:
刚开始接触设计模式时就常常听到同事提起工厂模式,那时也看过一些人写的Blog,但是往往把注意力放在代码的编写上。在这段时间的学习中慢慢体会到设计模式是用来解决一类问题,而不是某些固定的代码片段。换句话说是解决问题的思想。设计模式可以解决模块的耦合关系,可以解决因需求变动带来的问题。程序在第一次编写时,各个模块之间可能是紧耦合,但是经过代码重构,可以将模块之间变为松耦合。当然,我觉得我们也可以... 阅读全文
摘要:
Builder生成器模式是一种创建型模式,它主要是应对项目中一些复杂对象的创建工作。所谓“复杂对象”,是只:此对象中还含有其它的子对象。Builder模式所面对的情况是:各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将他们组合在一起的算法却相对稳定。简单的说:子对象变化较频繁,对算法相对稳定。 这是解决一个复杂对象的创建工作,... 阅读全文
摘要:
抽象工厂是一种创建型模式,是为了解决实例化时所带来的问题。 我们先来看看是什么问题,有的时候我们会遇到这种情况,我们需要一系列的对象。举个例子,有一系列BMW汽车零部件的对象:轮子bmwwheel,油箱bmwoilbox,在一个管理函数中调用它们,代码如下class BMWWheel{ public BMWWheel(){};} class BMWOilbox{ public BMWO... 阅读全文
摘要:
这是我写模式设计的第二篇,首先来说说设计模式的分类。 基本的23种设计模式从目的上可分为三种: 1、 创建型(Creational)模式:负责对象创建。 2、 结构型(Structural)模式:处理类与对象间的组合,可以解决一些继承依赖性的问题 3、 行为型(Behavioral)模式:类与对象交互中的职责分配,可以解决组件间如何和交互,隔离变化。 下面来说说单件模式: 首先... 阅读全文
摘要:
今天听了《C#面向对象设计模式纵横谈(1):面向对象设计模式与原则》课程。总结了一些笔记。 首先介绍了什么是设计模式:设计模式描述了软件设计过程中某一类常见问题的一般性的解决方案。 下面主要讨论面向对象设计模式。 面向对象设计模式描述了类与相互通信的对象之间的组织关系。目的是应对变化、提高复用、减少改变。 那到底什么是对象: 1、从概念层面讲,对象是某种拥有职责的抽象; 2、从规格层面讲,对... 阅读全文
摘要:
所谓三层体系结构,是在客户端与数据库之间加入了一个"中间层",也叫组件层。三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。开发人员可以将应用的商业逻辑放在中间层应用服务器上,把应用的业务逻辑与用户界面分开。在保证客户端功能的前提下,为用户提供一个简洁的界面。这意味着如果需要修改应用程序代码,只需要对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。从而使开... 阅读全文