摘要: 备忘录模式 备忘录模式,也叫做快照模式。常用在需要临时保存对象当前状态的场景中,如游戏中的保存进度场景。当我们需要还原时,只需要重新加载之前保存的对象即可。属于GOF定义的23种设计模式。个人认为是比较简单的一种设计模式。 需要注意的是当需要保存的对象过多或者内容过大是,使用备忘录模式就可以产生性能 阅读全文
posted @ 2016-08-17 20:03 Hey,Coder! 阅读(190) 评论(0) 推荐(0) 编辑
摘要: asp.net 发送邮件 System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); msg.To.Add("sheyou@sheyouyun.com"); msg.From = new MailAddress("renhanlinbsl@163.com", "renhan... 阅读全文
posted @ 2016-08-11 16:14 Hey,Coder! 阅读(144) 评论(2) 推荐(0) 编辑
摘要: 建造者模式,又称生成器模式。建造者模式将复杂对象和这个对象的具体表示分离,使得相同的创建过程可以生成不同表示的对象。模板模式更多的是将具有相同执行过程的算法封装起来,使得相同的算法可以根据对象的不同产生一些不一样的地方,这与建造者模式的思维方式近乎一致。不过建造者模式讲究的是将相似对象的创建过程统一 阅读全文
posted @ 2016-08-07 01:56 Hey,Coder! 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 当我们需要重复的创建对象的时候,通常会使用工厂模式来创建对象,这样来减轻工作量。但工厂模式的局限性在于只能够针对相同类型的产品。比如某工厂有一条生产果冻的生产线,这条生产线可以生产不同口味的果冻,这样可以很方便使用工厂模式来生成不同口味的果冻。但是如果新加入了一条生成汽水的生产线,那么整个系统就需要 阅读全文
posted @ 2016-08-04 21:08 Hey,Coder! 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 常常会在程序中遇到多个子类有共同的方法以及相似的调用过程。这个时候我们就可以使用模板模式来解决这些重复性的工作,例如我们买东西的时候一般都是挑选商品、付款这样的步骤,区别仅仅是挑选的商品品种不一样而已,这个时候我们就可以使用模板模式。那么模板模式需要怎么来实现呢,如下图 代码如下: public c 阅读全文
posted @ 2016-08-03 21:28 Hey,Coder! 阅读(268) 评论(2) 推荐(0) 编辑
摘要: 之前总结了简单工厂模式,然后我们发现,如果需要添加一个新的产品的话,就需要对工厂就行修改,添加相应的判断语句,从而来创建需要的类型的对象。这样就提高了耦合性,维护起来也稍麻烦些。那么本文就总结下能够解决这个问题的另一种设计模式——工厂模式。 工厂模式:factory pattern。GOF定义的二十 阅读全文
posted @ 2016-08-02 20:32 Hey,Coder! 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 代理设计模式:Proxy Pattern。在真实对象与客户端对象之间加入一层中阶层,由这一 层中介来完成对真实对象的引用。 优点:可以让程序的业务逻辑更加清晰。客户端对象不需要了解真实对象的细节,所有 的调用均由代理来完成。扩展性更高。代理保护了真实对象。 常用的场景: 1. 远程代理:为一个位于不 阅读全文
posted @ 2016-08-01 20:26 Hey,Coder! 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 装饰设计模式:Decorator Pattern,又称装饰者模式。特点是可以在不改变这个类的情况下,动态的为其添加新的功能,在运行时动态对对象进行扩展。主要实现方式是通过将其包装成另一个对象并添加新的功能来实现动态的添加功能。也就是说,是通过另一个类来将本来的对象包裹其中。 在实现的时候需要注意使装 阅读全文
posted @ 2016-07-31 19:48 Hey,Coder! 阅读(216) 评论(0) 推荐(0) 编辑
摘要: SPR(The Single Responsibility Principle):单一责任原则 OCP(The Open Closed Principle):开放封闭原则 LSP(The Liskov Substitution Principe):里氏替换原则 DIP(The Dependency 阅读全文
posted @ 2016-07-31 12:12 Hey,Coder! 阅读(984) 评论(0) 推荐(0) 编辑
摘要: 策略模式(Pattern Strategy):封装一系列算法,根据使用的场景自动使用需要的算法。那怎么来实现呢,其实最简单的一点,如果我们抽象出一个父类,然后将具体的算法封装在具体的子类中。在调用方法中,传入需要的子类对象,那么就能自动的调用这个子类对象的具体算法了。 代码如下(此处为java代码, 阅读全文
posted @ 2016-07-28 23:33 Hey,Coder! 阅读(273) 评论(0) 推荐(0) 编辑