Edward_jie

for you, my Hall of Frame

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  92 随笔 :: 45 文章 :: 539 评论 :: 43万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

05 2012 档案

摘要:命令模式: 命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否被执行、何时被执行,以及是怎么被执行的。UML:Vi 阅读全文
posted @ 2012-05-31 22:54 Edward_诺 阅读(2072) 评论(0) 推荐(2) 编辑

摘要:StrategyPattern和Simple Factory的区别和用法Strategy Pattern主要用于抽象特定算法或行为的设计模式模式,外表类似于简单工厂模式,但简单工厂模式主要用于生成产品,返回new实例,然后进行相应的编程,而策略模式倾向于指定的唯一的算法策略,初始化实例策略类之后,直接调用算法。在简单工厂中我们只需要传递相应的条件就能得到想要的一个对象,然后通过这个对象实现算法的操作,因为简单工厂中我们实现了switch来处理到底实例化哪个对象。而策略模式使用时必须在客户端首先创建一个想使用的类对象,然后将该对象最为参数传递进去,通过该对象调用不同的算法,因为策略模式中并没有为 阅读全文
posted @ 2012-05-29 21:00 Edward_诺 阅读(1974) 评论(2) 推荐(0) 编辑

摘要:一、策略(Strategy)模式策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。假设现在要设计一个贩卖各类书籍的电子商务网站的购物车(Shopping Cat)系统。一个最简单的情况就是把所有货品的单价乘上数量,但是实际情况肯定比这要复杂。比如,本网站可能对所有的教材类图书实行每本一元的折扣;对连环画类图书提供每本7%的促销折扣,而对非教材类的计算机图书有3%的折扣;对其余的图书没有折扣。由于有这样复杂的折扣算法,使得价格计算问题需要系统地解决。使用策略模式可以把行为和环境分割开来。环境类 阅读全文
posted @ 2012-05-29 17:54 Edward_诺 阅读(14710) 评论(2) 推荐(3) 编辑

摘要:观察者模式:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。抽象主题(Subject)角色:主题角色把所有对观察考对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象,主题角色又叫做抽象被观察者(Observable)角色,一般用一个抽象类或者一个接口实现。抽象观察者(Observer)角色:为所有的具体观察者定义一个接口,在得到主题的通知时更新自己。这个接口叫做更新接口。抽象观察者角色一般用一个抽象类或者一个接口实现。在这个示意性 阅读全文
posted @ 2012-05-29 16:57 Edward_诺 阅读(1608) 评论(2) 推荐(1) 编辑

摘要:一、迭代器模式简介(Brief Introduction) 迭代器模式(Iterator Pattern),提供一种方法顺序访问一个聚合对象中元素,而不暴露改集合对象的内部表示。 Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.二、解决的问题(What To Solve) 在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问.. 阅读全文
posted @ 2012-05-28 18:39 Edward_诺 阅读(2342) 评论(0) 推荐(5) 编辑

摘要:绝大多数公司都有自己的一个客户管理系统,CRM是公司内部经营的产业链。有时因为部门的不同,赋予每个部门同一个功能的命名也许不同,比如市场部在注册人数上称之为有效人数,而客服部管理中就是想称之为今日注册,当我们考虑代码复用,让class有机工作在一起的时候,就需要考虑Adapter pattern了。概述:在软件开发过程中,我们要经常要复用我们以前开发的一些“现存对象”,但是这些“现存对象”并不能满足我们新的应用环境。怎样才能良好的复用这些对象,以满足我们的应用环境,这就是适配器(Adapter)所要解决的问题。意图: 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由.. 阅读全文
posted @ 2012-05-27 14:23 Edward_诺 阅读(1640) 评论(3) 推荐(3) 编辑

摘要:好吧,这次的设计模式,我从最爱的足球谈起。嗯,球员不是演员,想要行贿球员好比门将放球进去,这样演起来真的挺难,但作为裁判,对于一些争议性的问题,往往可以通过一些手段让他“看清”到底是哪方球员犯规在先,于是,球队老板们就决定跟裁判套套近乎了,可这必经是违法的事情,怎么办呢,一级官压死人,于是他们想到了足协,于是,球队老板-足协领导-裁判,就成了这proxy pattern的产业链,客户端-代理-服务端。来看一下代码吧:using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplicati 阅读全文
posted @ 2012-05-25 17:04 Edward_诺 阅读(1240) 评论(0) 推荐(1) 编辑

摘要:想必大家对index,explain和profile的利用也很多,这是我最近两天优化mysql语句查询资料整理的一些内容,希望大家可以一起来补充一下。index的使用:1.最好是在相同类型的字段间进行比较的操作。在MySQL 3.23版之前,这甚至是一个必须的条件。例如不能将一个建有索引的INT字段和BIGINT字段进行比较;但是作为特殊的情况,在CHAR类型的字段和VARCHAR类型字段的字段大小相同的时候,可以将它们进行比较。2.在建有索引的字段上尽量不要使用函数进行操作,尽量不要在数据库中做运算。3.避免负向查询和%前缀模糊查询,like 'xxx%'百分号后缀查询可以在 阅读全文
posted @ 2012-05-25 00:19 Edward_诺 阅读(5479) 评论(1) 推荐(7) 编辑

摘要:单例模式是一种比较常见的设计模式,比如symbian中的App,可以作为一个共享存储变量的类供所有view使用,避免使用全局变量,其主要作用有:第一、控制资源的使用,通过线程同步来控制资源的并发访问,以防同一时间modify资源而造成数据不统一等内容;第二、控制实例产生的数量,达到节约资源的目的。第三、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。数据库连接池的设计一般采用单例模式,数据库连接是一种数据库资源。通过遍历数据库连接池来获得数据库连接对象,如果有那么就可以省去连接数据库的操作而浪费掉的时间。软件系统中使用数据库连接池, 阅读全文
posted @ 2012-05-23 23:02 Edward_诺 阅读(1634) 评论(8) 推荐(1) 编辑

摘要:待写 阅读全文
posted @ 2012-05-23 00:45 Edward_诺 阅读(193) 评论(0) 推荐(0) 编辑

摘要:1.开闭原则,开,对拓展为开,闭,对修改为闭。2.解耦,与具体实例解耦,只是使用统一的抽象接口。3.工厂模式试用于不同数据库的连接方式上,利用反射机制实现多中数据库的访问。 阅读全文
posted @ 2012-05-22 13:55 Edward_诺 阅读(465) 评论(0) 推荐(0) 编辑

摘要:工厂模式,设计模式中普遍分成了三种,简单工厂、工厂方法和抽象工厂模式。看到一个名字,我首先会去思考它为什么被人们起为这样的名字,对于设计模式,想要明白到底是怎么回事,当然也要从名字开始。简单工厂,是针对同样具有某种属性和动作的对象进行抽象和封装的开始,简单工厂当然就是量少的工厂,我们完全可以项目的生存期中能够考虑到的为数不多的工厂整合到一个工厂类中,每一个工厂中,我们建造出特定的产品,这些产品都有共同的属性和动作,我们事先将他们写进一个抽象产品类中,以便客户端随时进行实例化其需要的产品,并且在日后的维护升级过程中,可以直接改动相应的产品类,而不影响到其他产品。工厂方法,是简单工厂不再简单的时候 阅读全文
posted @ 2012-05-21 15:41 Edward_诺 阅读(1924) 评论(1) 推荐(2) 编辑

摘要:Composite组合模式主要是应对这样的问题:一类具有“容器特征”的对象——即他们在充当对象的同时,又是其他对象的容器的情况。在编写时我们常常会造成:客户代码过多地依赖于对象容器复杂的内部实现,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频繁变化,带来了代码的维护性、扩展性的弊端。 GoF《设计模式》中说到:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite模式使得客户对单个对象和组合对象的使用具有一致性。 Composite组合模式结构如下: 说道这,我觉得有一个编程中常见的场景,就是对于树的实现,很符合这个模式。下面我就用这个例子作一下。 首先,我们先分 阅读全文
posted @ 2012-05-16 16:32 Edward_诺 阅读(3048) 评论(0) 推荐(1) 编辑

摘要:结构模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构。结构模式描述两种不同的东西:类与类的实例。根据这一点,结构模式可以分为类的结构模式和对象的结构模式。 后续内容将包括以下结构模式: 适配器模式(Adapter):Match interfaces of di 阅读全文
posted @ 2012-05-16 11:03 Edward_诺 阅读(3867) 评论(1) 推荐(1) 编辑

摘要:一、 命令(Command)模式 命令(Command)模式属于对象的行为模式【GOF95】。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请 阅读全文
posted @ 2012-05-15 23:45 Edward_诺 阅读(4942) 评论(0) 推荐(0) 编辑

摘要:设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。 GoF的“设计模式”是第一次将设计模式提升到理论高度,并将之规范化,本书提出了23种基本设计模式,自此,在可复用面向对象软件的发展过程中,新的大量的设计模式不断出现。一、设计模式和框架 现在,可复用面向对象软件系统现在一般划分为三大类:应用程序工具箱和框架(Framework),我们平时. 阅读全文
posted @ 2012-05-15 18:01 Edward_诺 阅读(13990) 评论(0) 推荐(7) 编辑

摘要:Observer 与 Subject 互为耦合,但是这种耦合的双方都依赖于抽象,而不依赖于具体。一、观察者模式目的 概述 原理二、 C#中的观察者模式概述 模型与观察者基类 优点三、 事例题目:猫大叫,两只老鼠开始逃跑,主人醒来,宝宝也醒来了并且哭了起来解决方案: 1. 建立模型(目标基类) 2. 建立观察者基类(单行为,多行为) 3. 建立具体目标 4. 建立具体观察者 5. 运行测试一、 观察者模式目的我们都知道解决一个问题有N种解决方式,但在面向对象的设计中如何能做到“高内聚,低耦合”,设计可重用的对象才是我们追求的。在设计过程中,我们经常会接触到一种情况:一个对象的行为引发其它多个对象 阅读全文
posted @ 2012-05-14 23:20 Edward_诺 阅读(24841) 评论(11) 推荐(20) 编辑

摘要:单例模式三种写法:第一种最简单,但没有考虑线程安全,在多线程时可能会出问题,不过俺从没看过出错的现象,表鄙视我……publicclassSingleton{privatestaticSingleton_instance=null;privateSingleton(){}publicstaticSingletonCreateInstance(){if(_instance==null){_instance=newSingleton();}return_instance;}}第二种考虑了线程安全,不过有点烦,但绝对是正规写法,经典的一叉publicclassSingleton{privatevola 阅读全文
posted @ 2012-05-10 14:19 Edward_诺 阅读(47869) 评论(4) 推荐(13) 编辑

摘要:一、工厂方法(Factory Method)模式工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口,而不接触哪一个产品类被实例化这种细节。这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。在Factory Method模式中,工厂类与产品类往往具有平行的等 阅读全文
posted @ 2012-05-10 13:56 Edward_诺 阅读(1613) 评论(0) 推荐(0) 编辑

摘要:工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态:简单工厂(Simple Factory)模式工厂方法(Factory Method)模式抽象工厂(Abstract Factory)模式一、简单工厂(Simple Factory)模式Simple Factory模式根据提供给它的数据,返回几个可能类中的一个类的实例。通常它返回的类都有一个公共的父类和公共的方法。Simple Factory模式实际上不是GoF 23个设计模式中的一员。二、Simple Factory模式角色与结构:工厂类角色Creator 阅读全文
posted @ 2012-05-10 13:54 Edward_诺 阅读(1983) 评论(2) 推荐(1) 编辑

摘要:引入人、工厂、和斧子的问题: (1),原始社会时,劳动社会基本没有分工,需要斧子的人(调用者)只好自己去磨一把斧子,每个人拥有自己的斧子,如果把大家的石斧改为铁斧,需要每个人都要学会磨铁斧的本领,工作效率极低。对应Java里的情形是:java程序里的调用者new一个被调用者的实例。类耦合度极高,修改维护烦琐,效率极低。 (2),工业社会时,工厂出现,斧子不再由普通人完成,而由工厂生产,当人们需要斧子的时候,可以到工厂购买斧子,无需关心斧子是怎么制造出来的,如果废弃铁斧为钢斧,只需改变工厂的制造工艺即可,制作工艺是工厂决定的,工厂生产什么斧子,工人们就得用什么斧子。 对应的Java里的情形是.. 阅读全文
posted @ 2012-05-10 13:35 Edward_诺 阅读(28151) 评论(1) 推荐(4) 编辑

摘要:This issue is seen when Visual Studio 2008 is installed using SMS. While trying to update a web reference (WSDL) the error pops up "The custom tool 'MSDiscoCodeGenerator' failed" while building projects"While facing this issue it is also seen that the Tool Box is there but its 阅读全文
posted @ 2012-05-07 16:16 Edward_诺 阅读(968) 评论(0) 推荐(1) 编辑

摘要:windows mobile已经没落,但由于公司需要,还要进行一个新平台的学习,symbian,meego,wp7,php一路下来,16个月做了5个平台,学到了皮毛但接触到很多方面和层次的技术知识。windows mobile连接mysql数据库,用webservice作为wm平台客户端和服务端进行远程操作数据库的途径。开发环境不用多说1.vs2008+windows mobile professional 6.0 sdk,具体操作请看本博客中windows mobile标签中有关搭建开发环境的博文。刚开始尝试连接sql server数据库,第一步中遇到的问题,报错是.net compact 阅读全文
posted @ 2012-05-07 15:13 Edward_诺 阅读(2812) 评论(3) 推荐(4) 编辑

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