`
tudusi
  • 浏览: 1085354 次
文章分类
社区版块
存档分类
最新评论
文章列表
概述 在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变化?提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变?这就是要说的Factory Method模式了。 意图 定义一个用户创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。 结构图 生活中的例子 工厂方法定义一个用于创建对象的接口,但是让子类决定实例化哪个类。压注成型演示了这种模式。塑料玩具制造商加工塑料粉,将塑料注入到希 ...
概述 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳 ...
概述 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时由于需求的变化,往往存在着更多系列对象的创建工作。如何应对这种变化?如何绕过常规的对象的创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?这就是我们要说的抽象工厂模式。 意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 模型图 逻辑模型: 物理模型: 生活中的例子 抽象工厂的目的是要提供一个创建一系列相关或相互依赖对象的接口,而不需要指定它们具体的类。这种模式可以汽车制造厂所使用的金属冲压设备中找到。这种冲压设备可以制造汽车车身部件 ...
概述 Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点。这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任。 从另一个角度来说,Singleton模式其实也是一种职责型模式。因为我们创建了一个对象,这个对象扮演了独一无二的角色,在这个单独的对象实例中,它集中了它所属类的所有权力,同时它也肩负了行使这种权力的职责! 意图 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 模型图 逻辑模型图: 物理 ...
C#中的委托和事件:http://www.cnblogs.com/JimmyZhang/archive/2007/09/23/903360.htmlC#中的委托和事件(续):http://www.cnblogs.com/JimmyZhang/archive/2008/08/22/1274342.htmlPDF浏览:http://www.tracefact.net/Document/Delegates-and-Events-in-CSharp.pdf源码下载:http://www.tracefact.net/SourceCode/Delegates-and-Events-in-CSharp.r ...
我用的powerdesigner是15.1版本,数据库是MySQL5.1.57 (1)首先新建一个“PhysicalDataModel”类型的文件,然后点击“Database”->"Configure Connections",弹出窗口“Configure Data Connections”, 并选择"Connection Profiles"如下图所示: (2)新建一个mysql连接,如下窗口: 填写连接相关信息,填写完毕后如下图所示: (上图相关信息填写需注意: <1>User name:和Password:为my ...
泛型最常见的用途是泛型集合,命名空间System.Collections.Generic 中包含了一些基于泛型的集合类,使用泛型集合类可以提供更高的类型安全性,还有更高的性能,避免了非泛型集合的重复的装箱和拆箱。 很多非泛型集合类都有对应的泛型集合类,下面是常用的非泛型集合类以及对应的泛型集合类:非泛型集合类 泛型集合类ArrayList List<T>HashTable DIctionary<T>Queue Queue<T>Stack Stack<T>SortedListSortedList<T> 我们用的比较多的非泛型集合类主要 ...
单问号(?) 用于给变量设初化的时候,给变量(int类型)赋为null值,而不是0。 public int a; //默认值为0 public int? b; //默认值为null 双问号(??) 用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值,否则跳过。 public int? b; //默认值为null public int IsNullOrSkip(){ return b ?? 0; //返回值为0} ================================================================ public int ...
1.上网下载GoogleMaps.Subgurim.NET(bll文件来的) 2.在.net,vs2005里引用下载的文件,再添加工具选项, 3.在左边拉动一个GMap到页面里,代码就写成以下这样 using Subgurim.Controles; protected void Page_Load(object sender, EventArgs e) { GMap1.addControl(new GControl(GControl.preBuilt.GOverviewMapControl)); GMap1.addControl(new GContr ...
前台页面 SendEmail.aspx 代码 1 <h2>
在asp.net中执行应用程序有两种方法:1、调用win32函数ShellExecute。2、用.NET Framework中的Process类。下面我分别用这两种方法执行Windows中的记事本程序notepad.exe。新建一个ASP.Net页面Default.aspx,在上面放一个按钮,进入Default.aspx.cs页面填写后台处理程序。1、调用win32函数ShellExecute。添加引用using System.Runtime.InteropServices;声明函数:[DllImport("shell32.dll")]
一、委托Delegate 一般的方法(Method)中,我们的参数总是string,int,DateTime...这些基本的数据类型(或者没有参数),比如 publicvoidHelloWorld() { Console.WriteLine("HelloWorld!"); }public
要利用asp.net2.0中的新SQL Server高速缓存依赖性,必须SQL Server数据库支持该功能.可使用C:\Windows\Microsoft .NET\Framework\V2.0XXXXX\下的aspnet_regsql.exe工具或者使用SqlCacheDependencyAdmin类编写代码实现 <wbr></wbr> 1.使用aspnet_regsql.exe工具 1).使数据库支持 aspnet_regsql.exe<wbr></wbr>-
要成为高产、高效的Web开发者,这需要我们做很多工作,来提高我们的工作方式,以及改善我们的劳动成果。 下面是10个提高效率的步骤,虽然不能保证解决你在开发中的所有问题,但至少是非常实用的,可以简化你的Web开发流程,使开发的每一个环节快速、流畅。还可以帮助你节省大量的时间,以便开发更多、更好的项目。1. 使用Web开发框架 一个良好的Web开发框架,可以帮助你: 解决常见的Web开发问题,如标准的Web页面布局、Web表单处理、浏览器兼容性解决等)。 测试Web开发的bug、安全和性能。 使代码重用更容易,因为有一个统一的API。 社区开发的插件和工具,可以进一步增强开发(j ...
背包问题(Knapsackproblem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。这个问题涉及到了两个条件:一是物品总的大小小于或等于背包的大小,二是物品总的价值要尽量大。 一.采用递归的回溯法 刚开始接触此类问题时,很多人都会想到用回溯法解决,也就是用递归,这是最直接的方法,同八皇后、迷宫、组合、全排列、贪吃蛇等问题一样,下面给我本人开始用递归写出的算法: //采用递归解决背包问题 #include "stdafx.h" #incl ...
Global site tag (gtag.js) - Google Analytics