随笔分类 -  Design Pattern

摘要:在开发asp.net程序时,用户的数据将保存至数据库,程序与数据库之间的数据操作,会涉及到往数据库添加数据,编辑数据,更新数据和删除数据等。本次Insus.NET介绍的是工厂方法,因此我们会从这几个操作入手。介绍工厂方法设计模式,得先从简单工厂设计模式(Simple Factory)开始,简单工厂,有一个操作类,这个类有一个virtual方法,好让其它子类继承与重写:Operationusing System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>/// Su 阅读全文
posted @ 2013-03-03 22:08 Insus.NET 阅读(1740) 评论(2) 推荐(3) 编辑
摘要:生活在城市,平时少不了去餐馆吃饭。或是加班下班之后,难免吃上宵夜之后,才回家。在餐馆或是大排档坐下,老板一般都会在第一时间,给你上茶水以及菜谱(在此博文中,这是重点)。我们接过菜谱之后,都会把菜谱遍历一遍,不放过任一美味与自己喜欢吃的佳肴。遍历一遍,此就是一种开发的设计模式,叫迭代器设计模式。迭代器模式,它提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。我们接过菜谱,使用两眼从头至尾或是从后往前看。菜谱聚集结构提供了第一项,下一项,是否结束,当前是哪一项了,是不是自己需要点的菜式。因此我们提供一个迭代的抽象类:Iteratorusing System;using Sys 阅读全文
posted @ 2013-03-02 23:57 Insus.NET 阅读(1902) 评论(2) 推荐(3) 编辑
摘要:开发的设计模式,是博大精深的,只有一步一个脚印和循序渐进的学习与应用,才能有进步。近段时间,Insus.NET把自己理解设计模式,简单写了一下与分享自己的理解与想法。得到很多高手与网友的热心评论,让Insus.NET学习与进步不少,真心感谢了。前几天有写了一篇《烹饪,简单工厂(Simple Factory)》,一开始就创建一个"烹饪类",来负责创建其他类的实例。接下来创建炒,煎,煮,炖等类。今天,Insus.NET也是以烹饪来写一个建造者设计模式,烹饪是膳食的艺术。Insus.NET虽然不是厨师,但喜欢品尝各种美味的佳肴。此篇是介绍建造者设计模式,我们以烹饪的方式做一顿家常 阅读全文
posted @ 2013-03-02 15:53 Insus.NET 阅读(1504) 评论(1) 推荐(3) 编辑
摘要:Insus.NET在想,每在公司或是老板给自己发工资时,每个人都会重新计算一下自己的工资,是否正确。好象老板或是会计都会把自己的工资计错了似的。因此,每个都人都是工资计算高手。工资计算,需要知道基本工资是多少; 否有加薪,加薪方式,是按基本工资的百分比来加,还是由得公司或是老板随心而加,表现加多些,表现不好加少一些;是否有加班,加班的方式也要清楚,工作天加班,普通假日加班,或是法定假日加班;是否有补帖等等。每一种方式,在此也算得上是算法,完成的都是相同的工作,只是实现不同罢了。为了简化与分工,我们可以把每种算法写成一个独立的类,减少它们之间的耦合。每个算法,返回一个结果,因此可以写一个抽象类, 阅读全文
posted @ 2013-03-01 23:42 Insus.NET 阅读(2490) 评论(1) 推荐(3) 编辑
摘要:“烹”就是煮的意思,“饪”是指熟的意思,狭义地说,烹饪是对食物原料进行热加工,将生的食物原料加工成熟食品;广义地说烹饪是指对食物原料进行合理选择调配,加工治净,加热调味,使之成为色、香、味、形、质、养兼美的安全无害的、利于吸收、益人健康、强人体质的饭食菜品包括调味熟食,也包括调制生食。因此,我们产生... 阅读全文
posted @ 2013-02-28 23:10 Insus.NET 阅读(2018) 评论(7) 推荐(4) 编辑
摘要:一个研发公司就如外观设计模式,它有诸多开发团队(子系统),前端开发团队,程序开发团队,数据库开发团队,测试团队等等。为各个开发团队能高度协调,公司定义一个协调接口,使得各个开发团队更加协调。前端开发团队:FrontEndDevelopmentTeamusing System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>/// Summary description for FrontEndDevelopmentTeam/// </summary>name 阅读全文
posted @ 2013-02-27 23:55 Insus.NET 阅读(2980) 评论(7) 推荐(4) 编辑
摘要:用简单的例子,说明代理(Proxy)设计模式。Insus.NET在家忙写程序没有时间,手机没钱了,叫儿子给一百元去超市(此超市有手机充值的服务)帮Insus.NET手机充值(话费)。手机充值的事,Insus.NET会做,儿子也会做,但是Insus.NET因某些情况,不能亲自办,叫儿子去代理(Proxy)。定义一个抽象类[Work],让自己或是儿子类别都能实现的充值方法:Workusing System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>/// Summar 阅读全文
posted @ 2013-02-27 15:01 Insus.NET 阅读(2143) 评论(12) 推荐(3) 编辑
摘要:前天有一网友问及有关设计模式的适配器模式(Adapter)时,说不太好理解。让Insus.NET能否举个简单的例子来说明一下。下面的动画是Insus.NET做出来的效果:上面的演示,两个灯的规格一样,要求输入的电压为15伏。Light1是直接使用,而Light2是使用Adapter(电源适配器)。因此Light1只能接收15伏的电压,小于15伏,会提示电压过低,如果超过了15伏,Light1肯定被烧坏。Light2使用了电源适配器,它接收15伏至220的电压,在这电压范围之内,电源适配器会把电压转为15的电压。小于15伏,会提示电压过低,如果超过了220伏,适配器被烧坏。好,我们程序开始,先创 阅读全文
posted @ 2013-02-04 11:25 Insus.NET 阅读(3052) 评论(7) 推荐(5) 编辑
摘要:什么叫观察者设计模式(Observer Pattern),在此不作过多解释。Insus.NET以一个很简单的例子来演示给大家看看。一个是发布者,而发布者只关心会有谁订阅:IPublishusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;///<summary>///SummarydescriptionforIPublish///</summary>namespaceInsus.NET{//发布者接口publicinterfaceIPublish{//只关心会有谁订阅v 阅读全文
posted @ 2011-12-10 13:28 Insus.NET 阅读(2310) 评论(3) 推荐(3) 编辑
摘要:儿子: 爸爸,今天早餐吃什么?是炒粉还是煮面?爸爸: 你想吃哪种呢?儿子: 我想吃煮面。爸爸: 煮面也有很多种,你想吃鸡蛋煮面,虾煮面,肉片煮面......儿子: 我选虾煮面。从开发角度来说,不管是炒还是煮,它是只是一个动作或方法。因此可以定义成为两个接口:ICookableusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;//////SummarydescriptionforICookable///namespaceInsus.NET{publicinterfaceICookable{vo 阅读全文
posted @ 2011-12-07 08:59 Insus.NET 阅读(644) 评论(3) 推荐(2) 编辑
摘要:昨晚有位网友来电求助,说有一个DropDownList,由于选项过多,想在DropDownList前放一个TextBox,让用户输入文本,DropDownList会选中相应的选项。如果用户选择DropDownList选择一个选择,会把它的值显示于这个TextBox之上。Insus.NET做了两个演示。也供大家参考,Demo1,普通方法实现,执行时会有点异常,还待去解决:Demo1.aspx:View Code <%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Demo1.aspx.cs 阅读全文
posted @ 2011-11-11 11:30 Insus.NET 阅读(1649) 评论(3) 推荐(1) 编辑
摘要:基本抽象的属性,方法,可以使用接口(Interface)去替换。下面演示中,就是以简单工厂(Simple Factory Pattern) 为例,把抽象类改为接口。文件格式:.wmv;大小:8,716KB;长度:00:06:14。下载地址:http://download.cnblogs.com/insus/CSharpNET/Ref_to_Interface.rar 阅读全文
posted @ 2011-02-15 20:08 Insus.NET 阅读(731) 评论(0) 推荐(2) 编辑
摘要:物件继承,也许应用到简单工厂(Simple Factory)设计模式(Design Pattern)。下面演示,是使用上面一个例子物件继承(object inheritance) 的基础上进行的。文件格式:.wmv;大小:11,818KB;长度:00:09:13。下载地址:http://download.cnblogs.com/insus/CSharpNET/Simple%20Factory.rar 阅读全文
posted @ 2011-02-11 20:59 Insus.NET 阅读(620) 评论(1) 推荐(2) 编辑
摘要:在写程式时,有时会使用到物件继承(Object Inheritance)。下面视频演示中,是如何让类别中的相同方法提起放在另一个类别中,然后需要使用到这个方法类别再去继承这个类别。在程序开发中,尽量少使用继承,因为子类与父类之间紧密耦合。解决这个问题,建议写成抽象(Abstract)类别或是接口(Interface)。文件格式:.wmv;大小:18,777KB;长度:00:14:34。下载地址:http://download.cnblogs.com/insus/CSharpNET/Inheritance.rar 阅读全文
posted @ 2011-02-11 20:26 Insus.NET 阅读(566) 评论(1) 推荐(2) 编辑