策略+简单工厂 实战篇
机房收费系统收费制度——策略+简单工厂模式
前段时间把设计模式学了个遍,确切的说是初识。因为看过后,脑袋里就只剩下这几个模式叫什么了,怎么用,类图是什么,都不记得了。
现在机房收费系统重构,刚好拿几个过来练练手。
一、策略模式的使用环境
机房收费系统在下机收费这块,涉及到两种卡的收费,一种是固定用户,一种是临时用户。不同的用户消费单价不相同,导致在读取数据库的时候会有两种不同的查询方法,这样的情况适合使用策略模式来解决。(其实这里的情况比较简单,系统小,用模式有点复杂,这里只是为了学习策略模式和简单工厂)
二、具体实现
Client 类
'获取临时用户的消费价格Public Class TempConsume '实现IStrategy接口 Implements IStrategy.ConsumePrice '获取临时用户的消费价格 Public Function Getprice() As Integer Implements IStrategy.ConsumePrice.Getprice '声明工厂对象 Dim da As New DataAccess.DataAccess '创建接口 Dim id As IDAL.IData = da.CreateData '创建datatable对象 Dim dataen As New Model.Data_Table '调用D层方法实现 dataen = id.GetPriceTemp() '取出需要的值,并返回 Return dataen.P_pricetemp End FunctionEnd Class