• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 浅析.net策略模式

浅析.net策略模式

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了社区银行经营策略浅析,浅析华为手机营销策略,浅析小米手机营销策略,浅析农夫山泉营销策略,浅析苏宁的营销策略等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

对于策略模式的理解:当一个业务有多种需求时候,在某个时候需要使用不同的方式来计算结果。这时候不同的方式可以理解为不同的策略来解决同样的问题。 例如:商场收银系统计算价格,1:正常计算 2:商品打折计算,3:满300减100等方式。就可以按三种策略来处理需求。

简单的说:策略模式就是用来封装算法的,但在实践中,我们发现可以用他来封装几乎任何类型的规则,只要在分析过程中听到需要在不同的时间应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DesignModel
{
    /// <summary>
    /// 策略模式
    /// </summary>
    public class TacticsModel
    {
        public string type { get; set; }
        public virtual string GetResult()
        {
            return "";
        }
    }
    public class Normal:TacticsModel
    {
        public override string GetResult()
        {
            return "正常计算价格";
        }
    }
    public class Discount : TacticsModel
    {
        public override string GetResult()
        {
            return "按打折计算价格";
        }
    }
    public class Preferential : TacticsModel
    {
        public override string GetResult()
        {
            return "满300减100活动";
        }
    }
    public class CashContext
    {
        TacticsModel tm = null;
        public CashContext(string type)
        {
            switch (type)
            {
                case "1":
                    tm = new Normal();
                    break;
                case "2":
                    tm = new Discount();
                    break;
                case "3":
                    tm = new Preferential();
                    break;
                default:
                break;
             }
        }
        public string GetResult()
        {
            return tm.GetResult();
        }
    }
}
</div>

这种方式和简单工厂方式差不多,只是有稍微区别。 简单工厂模式需要暴漏给客户端两个类,策略模式和工厂模式的简单结合只暴漏了一个CashContext类

客户端调用代码:

   Console.WriteLine("请计算类型1正常,2打折,3优惠:");
   string type = Console.ReadLine();
   CashContext cc = new CashContext(type);
   Console.WriteLine(cc.GetResult());
</div>
结果:

其中还是使用了swich ,也就是就是说增加一种需求就有更改swith语句,很是不爽,不过任何需求的变更都是需要成本的。

只是成本的高低是有区别的。这个地方用反射技术会有更好的效果。后续会补充。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 浅析.net策略模式

相关文章

  • 2017-05-11ASP.NET中下载文件的几种实例代码
  • 2017-05-11asp将本地的文件上传到服务器
  • 2017-05-11asp.net中提示该行已属于另一个表的解决方法
  • 2017-05-11IIS7的应用程序池详细解析
  • 2017-05-11asp.net中穿透Session 0 隔离(二)
  • 2017-05-11c# 在WebBrowser中用SendMessage模拟鼠标点击
  • 2017-05-11ASP.NET中为GridView添加删除提示框的方法
  • 2017-05-1112306动态验证码启发之ASP.NET实现动态GIF验证码(附源码)
  • 2017-05-11ASP.NET通过分布式Session提升性能
  • 2017-05-11asp.net DataGrid控件中弹出详细信息窗口

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.NET Core使用SkiaSharp实现验证码的示例代码
    • asp.net4.0框架下验证机制失效的原因及处理办法
    • c#委托与事件(详解)
    • ASP.NET显示农历时间改进版
    • c#多图片上传并生成缩略图的实例代码
    • asp.net SqlDataAdapter对象使用札记
    • Asp.Net 网站优化系列之数据库优化 分字诀 分表(纵向拆分,横向分区)
    • aspx中页面按钮写返回上一页代码
    • 完美解决在ModalPopupExtender中使用CalendarExtender时被层遮挡的问题
    • ASP.NET上传图片并生成可带版权信息的缩略图

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有