使用IronPython实现策略中心思路
2010-05-26 12:46
253 查看
对于不了解IronPhython的同学可以参考IronPython 与C#交互
一、基础知识
我们先从一个简单场景开始
不同公司的年假会有不同的策略,国家的规定好像是工作一年以上年假为5天,而有些公司还有些扩展的年假,比如每在公司多待一年年假增加1天,经理级别第一年就有年假等。如果我们使用简单的配置方式可能无法满足更复杂的策略,如果使用C#的动态编译(.net项目的二次开发解决方案)又有点复杂而且交互时还可能因为不同程序域带来很多问题。现在有了IronPhython实现起来就比较简单了。
我们先看代码:
代码
结果为
6
lfm1
这里只是实现策略中心的部分核心代码,如果真的实现这个策略中心的话还有很多辅助工作要做,这里边IronPhython代码可能需要我们提供界面生成出来,那么我们就需要在使用的地方为策略服务提供输入和返回的数据类型,策略服务可以根据输入类型来反射得到所有的字段,这些字段可以用于生成条件,然后这些条件可以用来生成IronPhython代码,也可以把这些字段应用到IronPhython代码编写相应的策略上。
源码下载(需要自己引用IronPython)
一、基础知识
我们先从一个简单场景开始
不同公司的年假会有不同的策略,国家的规定好像是工作一年以上年假为5天,而有些公司还有些扩展的年假,比如每在公司多待一年年假增加1天,经理级别第一年就有年假等。如果我们使用简单的配置方式可能无法满足更复杂的策略,如果使用C#的动态编译(.net项目的二次开发解决方案)又有点复杂而且交互时还可能因为不同程序域带来很多问题。现在有了IronPhython实现起来就比较简单了。
我们先看代码:
代码
namespace ConsoleApplication7 { class Program { static void Main(string[] args) { Employee employee = new Employee() {Id=1, EnterDays = 800,Name="lfm" }; Console.WriteLine(employee.AnnualLeave); Console.WriteLine(employee.GetEmployeeNum()); } } }
结果为
6
lfm1
这里只是实现策略中心的部分核心代码,如果真的实现这个策略中心的话还有很多辅助工作要做,这里边IronPhython代码可能需要我们提供界面生成出来,那么我们就需要在使用的地方为策略服务提供输入和返回的数据类型,策略服务可以根据输入类型来反射得到所有的字段,这些字段可以用于生成条件,然后这些条件可以用来生成IronPhython代码,也可以把这些字段应用到IronPhython代码编写相应的策略上。
源码下载(需要自己引用IronPython)
相关文章推荐
- 使用python获取CPU和内存信息的思路与实现(linux系统)
- 使用正则Regex来移除网页的EnableViewState实现思路及代码
- MultipartFile-使用策略模式实现可拓展文件分类上传
- redis使用watch秒杀抢购实现思路
- 使用nginx实现的灰度发布思路研究(待实践)
- 使用Redis实现抢购的一种思路
- 2008R2域控环境中 应用组策略 实现禁用USB设备使用
- 使用策略模式(strategy pattern)实现多关键字排序(2)
- Linux路由应用-使用策略路由实现访问控制
- 分布式锁实现思路及开源项目集成到springmvc并使用
- 管理类中指针,实现使用计数类,两种经典策略
- 使用MMDrawerController以TabBarController为中心视图实现抽屉效果
- 需要为你的SaaS改变走向市场策略吗?本文介绍了ISV怎样使用Windows Azure实现它
- solr入门之使用Solr完成拼写纠错的实现思路
- 赠书活动获奖名单 - 2月28日的《使用 Virtual SAN 实现策略驱动的存储设计》
- vnpy1.7.1版本实现多品种策略订阅多合约tick的思路
- 设计模式实战(一)——使用策略模式(strategy pattern)实现多关键字排序
- iOS 高可控性日历基础组件 - SKCalendarView 的使用和实现思路的分享
- 实现智能指针有两种经典策略:一是引入辅助类,二是使用句柄类。
- 使用Log4net 日志实现思路