'**********************************************'说明:计算消费金额的抽象类'命名空间:BLL'机器名称:晓'创建日期:2015/1/8 20:01:18'作者:郑浩'版本号:V1.00'**********************************************Public Mustinherit Class CashSuper Public MustOverrIDe Function AcceptCash(ByVal basicdata As Entity.EN_Basicdata,ByVal consumetime As Integer) As DoubleEnd Class
imports BLL.CashSuper''' <summary>''' 临时用户计算消费时间''' </summary>''' <remarks></remarks>Public Class CTempuser : inherits BLL.CashSuper Public Overloads OverrIDes Function AcceptCash(basicdata As Entity.EN_Basicdata,consumetime As Integer) As Double Return basicdata.TempPrice * (consumetime / 60) End FunctionEnd Class
imports BLL.CashSuper''' <summary>''' 固定用户的消费金额的计算''' </summary>''' <remarks></remarks>Public Class FixUser : inherits BLL.CashSuper Public Overloads OverrIDes Function AcceptCash(basicdata As Entity.EN_Basicdata,consumetime As Integer) As Double Return basicdata.FixPrice * (consumetime / 60) End Function
Public Class CashFactory ''' <summary> ''' 消费金额计算工厂 ''' </summary> ''' <param name="type"></param> ''' <returns></returns> ''' <remarks></remarks> Public Function CreateCashAccept(ByVal type As String) As BLL.CashSuper Dim cs As BLL.CashSuper cs = nothing Select Case type Case "临时用户" cs = New BLL.CTempuser() Case "固定用户" cs = New FixUser() End Select Return cs End FunctionEnd Class
以上这些简单的代码是在B层完成的,当我们完成这些以后,只需要在在调用的时候,传给相应的参数就可以了,这样当我们需要别的计费的方式的时候,会很容易扩展,很好满足了开放封闭原则。 小结 在设计模式中策略模式是比较简单的一个,所以代码相比较简单,但是这个策略模式和简单工厂模式相结合真的给我们带了很大便利,因为我们机房这个系统还是相对比较小的,所以一些模式的功能不能很好的体现,但是我们需要根据它的需求来想象一个大的系统,这样我们就会有加入设计模式的冲动,设计模式需要我们在实践中不断地摸索,才能领略它的魅力,所以在重构的时候尽可能的使用一些设计模式。 总结
以上是内存溢出为你收集整理的【机房重构】——策略模式+简单工厂计算消费全部内容,希望文章能够帮你解决【机房重构】——策略模式+简单工厂计算消费所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)