java策略模式和简单工厂方法怎么实现
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容主要讲解"java策略模式和简单工厂方法怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java策略模式和简单工厂方法怎么实现"吧!策略模式
千家信息网最后更新 2026年10月31日java策略模式和简单工厂方法怎么实现
本篇内容主要讲解"java策略模式和简单工厂方法怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java策略模式和简单工厂方法怎么实现"吧!
策略模式由前端触发决定使用某一组算法或逻辑,每一组算法或逻辑不相同,互相不干扰。最后交由一个上下文具体去执行,并可以增加一定公有逻辑。
比如某电商平台搞活动:
普通会员:满100减10块
白银会员:满100减15块 送积分
黄金会员:满100减18块 送积分 参与抽奖
钻石会员:满100减20块 送积分 参与抽奖 免费送货
由会员级别决定执行哪一个活动,建一个枚举:
public enum MemberLevel{ /// /// 普通会员 /// Normal, /// /// 白银会员 /// Silver, /// /// 黄金会员 /// Gold, /// /// 钻石会员 /// Diamond}一个用户类:
public class User{ public int Id { get; set; } public string Name { get; set; } public MemberLevel Level { get; set; }}我们有1个会员基类,定义一个优惠的方法:
public abstract class BaseMember { public abstract void Preferential(decimal customMoney); }4种会员分别实现BaseMember:
////// 普通会员/// public class NormalUser : BaseMember{ public NormalUser() { Console.WriteLine("普通会员"); } public override void Preferential(decimal customMoney) { Console.WriteLine("满100减10块"); }}////// 白银会员/// public class SilverUser: BaseMember{ public SilverUser() { Console.WriteLine("白银会员"); } public override void Preferential(decimal customMoney) { Console.WriteLine("满100减15块"); Console.WriteLine("送积分100"); }} ////// 黄金会员 /// public class GoldUser: BaseMember { public GoldUser() { Console.WriteLine("黄金会员"); } public override void Preferential(decimal customMoney) { //if (customMoney > 100) //{ Console.WriteLine("满100减18块"); Console.WriteLine("送积分100"); Console.WriteLine("参与抽奖"); //} } } ////// 钻石会员/// public class DiamondUser : BaseMember{ public DiamondUser() { Console.WriteLine("钻石会员"); } public override void Preferential(decimal customMoney) { //if (customMoney > 100) //{ Console.WriteLine("满100减20块"); Console.WriteLine("送积分100"); Console.WriteLine("参与抽奖"); Console.WriteLine("免费送货"); //} }}
我们还需要一个简单工厂:(这里可以从配置文件去获取,通过反射来实例化)
public class SimpleFactory{ public static BaseMember CreateMember(MemberLevel memberLevel) { return MemberLevelConfig.MemberDictionary[memberLevel]; }}public static class MemberLevelConfig{ public static Dictionary MemberDictionary = new Dictionary() { {MemberLevel.Normal,new NormalUser() }, {MemberLevel.Silver,new SilverUser() }, {MemberLevel.Gold,new GoldUser() }, {MemberLevel.Diamond,new DiamondUser() }, }; } 最后我们还需要一个上下文:增加一个公有的逻辑如果金额不够100则无优惠
public class Context{ private BaseMember _baseMember; private decimal _customMoney; public Context(BaseMember baseMember,decimal customMoney) { _baseMember = baseMember; _customMoney = customMoney; } public void Preferential() { if (_customMoney < 100) { Console.WriteLine("金额未满100,不能参加活动"); } else { _baseMember.Preferential(_customMoney); } }}现在我们的Main方法:
static void Main(string[] args){ User user = new User(); user.Level = MemberLevel.Silver; var member = SimpleFactory.SimpleFactory.CreateMember(user.Level); Console.WriteLine("********************"); Context.Context context = new Context.Context(member, 180); context.Preferential(); Console.ReadKey();}到此,相信大家对"java策略模式和简单工厂方法怎么实现"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
会员
方法
积分
工厂
模式
策略
普通
逻辑
钻石
黄金
白银
活动
上下
上下文
免费送货
内容
算法
金额
优惠
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
有格互联网科技
互联网科技网
互联网最新的科技
新华互联网科技学院
互联网科技的发展
万易互联网科技
为想互联网科技
智慧科技互联网
腾讯科技 互联网女皇
唐信互联网科技 大连
长亮科技 互联网金融
多迪互联网科技有限公司
天扬科技互联网广告
互联网公司科技股
国大互联网教育科技有限公司工作
中国科技创新与世界互联网大会
南通创西澳互联网科技有限公司
米泉互联网科技专业怎么样
玉溪新华互联网科技怎么选
六子台科技互联网展会
科技互联网产品
互联网科技股有哪些
广西拼得多互联网科技有限公司
玖二柒互联网科技公司待遇
宁波青枫互联网科技有限公司
互联网教育科技公司vipkid
花神(南京)互联网科技有限公司
科技互联网的核心竞争力
互联网硬科技公司
唐山双旺合互联网科技产业园