随笔分类 -  设计模式

摘要:我们可以在配置文件中向构造方法或者属性注入列表型参数,诸如 Array、ArrayList、Hashtable 等。 1. IList 在 .NET Framework 中实现 IList 的主要是 Array、ArrayList。 public class HelloWorld { public HelloWorld(IList list) { Console.Writ... 阅读全文
posted @ 2008-09-30 09:47 wenanry 阅读(561) 评论(0) 推荐(1) 编辑
摘要:1. 别名 我们为 HelloWorld 创建了一个别名 HelloWorld2,我们同样可以通过 HelloWorld2 获取对象。请注意下面的测试代码输出结果。 object o = context.GetObject("HelloWorld"); object o2 = context.GetObject("HelloWorld2"); Console.WriteLine(object... 阅读全文
posted @ 2008-09-30 09:45 wenanry 阅读(471) 评论(0) 推荐(0) 编辑
摘要:依照第二篇的配置文件,我们可以初步注入我们所需的类型。本篇将记录获取对象的不同方法。 1. 构造方法创建对象 这种方式最常见,大多数时候我们都会采取此方式获取对象。如果目标对象需要提供构造参数,我们也可以在配置文件中提供。 using System; using System.Collections.Generic; using System.Text; using System.Thr... 阅读全文
posted @ 2008-09-30 09:43 wenanry 阅读(1647) 评论(0) 推荐(0) 编辑
摘要:Spring.NET IoC 支持2种配置文件方式: 1. 应用程序配置文件 app.config / web.config test.cs IApplicationContext context = ContextRegistry.GetCo... 阅读全文
posted @ 2008-09-30 09:39 wenanry 阅读(1075) 评论(0) 推荐(0) 编辑
摘要:Spring.NET 移植自著名的 Java 开源项目 —— Spring,借助于 .NET 强大的反射机制,甚至拥有比原 Java 版本更强大的功能。只是不知道什么原因,在 .NET 领域似乎没有多少热度,其影响力甚至不如 Castle。因准备在个人项目中使用 IoC,因此花些时间对 Spring.NET 和 Castle 都作一些了解,本文权作学习笔记。 Spring.NET 的宣传口号中有... 阅读全文
posted @ 2008-09-30 09:36 wenanry 阅读(1148) 评论(1) 推荐(0) 编辑
摘要:类别:创建型 意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 适用: 一个系统要独立于它的产品的创建、组合和表示时。 一个系统要由多个产品系列中的一个来配置时。 当你要强调一系列相关的产品对象的设计以便进行联合使用时。 当你提供一个产品类库,而只想显示它们的接口而不是实现时。 ------------------------ ... 阅读全文
posted @ 2008-09-30 09:17 wenanry 阅读(293) 评论(0) 推荐(0) 编辑
摘要:类别:创建型 意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 适用: 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。 ---------------------- 单件和工厂估计是最常用的设计模式了,想必每个人都很熟。本贴只是研究一些 Single... 阅读全文
posted @ 2008-09-30 09:14 wenanry 阅读(253) 评论(0) 推荐(0) 编辑
摘要:My Sapce,或者称之为"我的账号"、"我的书屋"等等。几乎所有的电子商务网站都会为其会员保留一个操作个人相关信息的"私有空间"。 My Space 一般包含如下功能: 1. 查看/修改个人信息(密码)。 2. 查看/修改个人用于保存所关注商品的收藏夹。 3. 查看/取消当前未处理订单。 4. 查看/搜索历史订单。 5. 查看个人账户信息(余额)。 6. 订阅网站邮件列表。 除了上述功能... 阅读全文
posted @ 2008-09-30 09:10 wenanry 阅读(381) 评论(0) 推荐(0) 编辑
摘要:定单作为业务关联最紧密和系统中逻辑最复杂的单元,我们很难完全剥离进行独立设计。不过基于 OO 的思想我们还是可以做些工作的。 看下面的简略设计图。 我们知道,定单的变化部分基本集中在折扣规则,商品数据信息上。那么还有很多是不变的,诸如用户信息、总金额、下单日期、确认日期、结算信息、配送信息等。我们将不变的部分放在抽象基类中,而将那些可变的部分以抽象方法让实际子类去单独处理。 如此设计的... 阅读全文
posted @ 2008-09-30 09:08 wenanry 阅读(289) 评论(0) 推荐(0) 编辑
摘要:从所承担的功能上来说,Passport 是一个系统级别的服务,而不仅仅用来进行用户管理。对于任何一个网站而言,随着业务的发展,多业务的网站群整合不可避免,那么作为整合的通道之一,用户数据共享自然就是一个关键点。 Passport 在设计之初就应该独立于业务逻辑。一般情况下它担负如下任务: 1. 用户统一注册、管理。提供页面或者相关接口供其它业务站点调用。 2. 单点登录 (Single Sig... 阅读全文
posted @ 2008-09-30 09:04 wenanry 阅读(1107) 评论(0) 推荐(0) 编辑
摘要:分类目录作为电子商务网站的重要入口之一,设计好坏直接关系到网站的性能。 网上大多数相关的例子都采用树(森林)状结构。 Id: 分类编号,自增整数。 Name: 分类名称 ParentId: 父分类编号 这种经典结构却并不适合电子商务网站使用,我们分析一下分类目录的使用场景。 1. 分类导航。 2. 分类搜索。 3. 分类统计。 问题就出在分类搜索和分类统计上,这两个需求都需要检索分类及其所... 阅读全文
posted @ 2008-09-30 09:03 wenanry 阅读(562) 评论(0) 推荐(0) 编辑
摘要:作为电子商务网站的基础之一,购物车使用十分广泛。本文只是粗略讲述购物车的实现方式和注意事项。 1. 购物车对象 没错,任何时候都不要将一堆零散的商品数据扔到 Session 或者 Cookie 里面,然后在某个 ShoppingCart.aspx 中去显示购物车。我们需要一个购物车对象,基于设计理论,这个对象和页面完全无关。 作为购物车对象,最根本的功能是存储用户所购买商品信息。另外,还应该... 阅读全文
posted @ 2008-09-30 09:02 wenanry 阅读(1035) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示