![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Design pattern
文章平均质量分 80
guopengzhang
http://dumbee.net
展开
-
策略模式下的商场促销方法设计
/*算法与对象的耦合: 对象可能经常需要使用多种不同的算法,但是如果变化频繁,会将类型变得脆弱。动机: 在软件构建的过程总某些对象使用的算法可能多种多样,经常变化,如果将这些算法都编码到对象中,将会是对象变得异常复杂,而且有时候支持不使用的算法也是一个性能负担。(如何在运行时根据需要透明的更改对象的算法?将算法与对象本身解耦,从而避免上述的问题?)意图: 定义一系列算法,把它们封装起来,并且使原创 2010-01-27 17:43:00 · 1225 阅读 · 0 评论 -
简单工厂模式的四则运算设计
具体代码: using System;// 二元运算的基类public class Operation{ //私有成员 private double _numberA = 0; private double _numberB = 0; //公共属性 public double NumberA { get {原创 2010-01-25 15:39:00 · 1527 阅读 · 1 评论 -
装饰模式
/*动机: 当我们“过度的使用了继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀(多继承)。如何使“对象功能的扩展”能够根据需要来动态的实现?同时避免”扩展功能的增多“带来的子类膨胀问题?从而使得任何“功能扩展变化”所导致的影响变为最低?意图: 动态的给一个对象增加一些额外原创 2010-01-29 15:27:00 · 492 阅读 · 0 评论 -
工厂方法模式
//工厂方法模式(创建型) //与简单工厂模式的区别: //简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化的类,对于客户端来说, //去除了与具体产品的依赖。但是问题也在这里,就像为如果为简单工厂模式下的二元四则运算添加一个新的功能,如计算 // ”M的N次方“,这时候我们就需要在工厂类中增加一个case分支,这就违背了开闭原则。而原创 2010-03-18 23:04:00 · 508 阅读 · 0 评论 -
设计模式原则
设计模式的核心原则是:"开-闭"原则( Open - Closed Principle 缩写:OCP ),一切的一切都是围绕着"开-闭"原则展开的.. 意思是,在一个系统中,对于扩展是开放的,对于修改是关闭的,一个好的系统是在不修改源代码的情况下,可以扩展你的功能..而实现开闭原则的关键就是抽象化. 在"开-闭"原则中,不允许修改的是抽象的类或者接口,允许扩展的是具体的实现类,抽象类和接口在"开-闭"原则中扮演着极其重要的角色..即要预知可能变化的需求.又预见所有可能已知的扩展..所以转载 2010-08-23 17:07:00 · 694 阅读 · 0 评论