运用简单工厂实现登陆权限的选择

在敲机房收费系统重构版之间我们学习了设计模式,可是除了书上的实例外我们并没有再去深究这些东西,同一时候可敢肯定的是我们在刚学习设计模式的时候也不是非常清楚每一个详细的处理逻辑。就像我们之前学过的非常多东西一样,仅仅是先了解一下有这么个东西存在,以后用的时候再深究当中的原理。

在机房收费系统中用简单工厂或者是策略模式最好的地方事实上是处理固定用户和暂时用户结账下机的时候。不同级别的用户,依照不用的方式进行结算(写到这里不禁想起来没有接触设计模式之前还以为这根数据库的设计有关系)。

以下是我在B层关于简单工厂的实现代码

Imports System.Windows.Forms
‘定义一个基类
Public Class PermissionsSuper
    Public Overridable Sub ChooseP(ByVal menu1 As ToolStripMenuItem, ByVal menu2 As ToolStripMenuItem, ByVal menu3 As ToolStripMenuItem)
    End Sub
End Class

‘一般用户类
Public Class ChooseGeneral
    Inherits PermissionsSuper
    Public Overrides Sub ChooseP(ByVal menu1 As ToolStripMenuItem, ByVal menu2 As ToolStripMenuItem, ByVal menu3 As ToolStripMenuItem)
        menu1.Enabled = True
        menu2.Enabled = False
        menu3.Enabled = False
    End Sub
End Class

‘操作员,管理员相似一般用户
Public Class ChooseOperator   

‘权限工厂
Public Class PermissionsFactory
    Public Shared Function ChoosePermissions(ByVal LoginUserLevel As String) As PermissionsSuper
        Dim ps As PermissionsSuper = Nothing
        Select Case (LoginUserLevel)
            Case "一般用户"
                ps = New ChooseGeneral()
                Exit Select
            Case "操作员"
                ps = New ChooseOperator()
                Exit Select
            Case "管理员"
                ps = New ChooseManager()
                Exit Select
        End Select
        Return ps
    End Function
End Class

以下是U层中实现的代码:

 ‘定义并赋值菜单条变量
        Dim menu1, menu2, menu3 As ToolStripItem
        menu1 = GeneralUser
        menu2 = OperatingUser
        menu3 = ManagerUser

        ‘定义一个变量获得用户级别
        Dim LoginUserLevel As String = UserLevel

        ‘在权限工厂中选在要调用的子工场
        Dim pSuper As RechargeBLL.PermissionsSuper
        pSuper = RechargeBLL.PermissionsFactory.ChoosePermissions(LoginUserLevel)

        ‘运行子工厂
        Call pSuper.ChooseP(menu1, menu2, menu3)

说实话除了策略模式因为看过“永和收银系统(真的非常强大,维护该系统压力不小啊)”后台的配置管理,抽象工厂加反射外其它的模式如今还体会不了它们的伟大之处。反倒是认为加上设计模式后,系统的实现变得复杂了,就在这个登录时的权限选择,其有用If.....elseif.....或者select case实现起来要方便得多。

可能关于面向对象、设计模式的各种优点听了非常多,可是因为在实际的学习过程中还没有遇到详细的问题,所以实际的感受也仅仅有麻烦了。知道某个知识点easy,理解起来还是要费些精力;且学且感悟!


				
时间: 2024-10-25 00:47:25

运用简单工厂实现登陆权限的选择的相关文章

简单工厂模式(SimpleFactory)

最近在研究Java设计模式,因此把自己在学习过程中的体悟记录下来,以方便以后复习使用. 1.简单工厂的本质: 选择实现,根据语义我们知道简单工厂的重点是在选择上而不是实现上. 2.何时选用简单工厂: 1.如果想要完全封装隔离具体实现,让外部只能通过接口来操作封装体,那么可以选用简单工厂,让客户端通过工厂来获取相应的接口,无须了解具体实现. 2.如果你想要把对外创建对象的职责集中管理和控制,可以选用简单工厂,一个工厂可以创建很多的,不相关的对象. 3.优缺点 优点:更好的实现了面向接口编程,并且使

【大话设计模式】——简单工厂模式

一.概念 简单工厂模式(Simple Factory Pattern)属于创建型模式,又叫做静态工厂方法模式(Static FactoryMethod Pattern),可是不属于23GOF设计模式之中的一个.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例. 二.UML图 简单工厂主要分为三个角色:工厂(Creator)角色.抽象产品(Product)角色.详细产品(Concrete Product)角色. 工厂角色:该模式核心,它负责创建全部实例的内部逻辑.工厂类能够被外界直接调用.

简单工厂模式和策略模式的差别

直接上代码: 简单工厂模式: ------------------------------一个抽象类   -------------------------- abstract class AbsClass { //抽象方法:提供一些列的算法操作 public abstract void acceptCash(string org); } ------------------------------2个实现类   -------------------------- //继承自抽象类 class

简单工厂模式和策略模式的区别

直接上代码: 简单工厂模式: ------------------------------一个抽象类   -------------------------- abstract class AbsClass { //抽象方法:提供一些列的算法操作 public abstract void acceptCash(string org); } ------------------------------2个实现类   -------------------------- //继承自抽象类 class

简单工厂模式(设计模式入门)

学习正式的设计模式前,先来个开胃菜,即简单工厂模式.下面将利用简单工厂模式设计一个计算器小程序: 一.运算基类(Operation) 1 public abstract class Operation 2 { 3 public double NumA { set; get; } 4 public double NumB { set; get; } 5 public virtual double GetResult() 6 { 7 return 0; 8 } 9 } 二.运算方法(+.-) 1 p

1 、设计模式 简单工厂设计模式

客户需要某个产品,客户直接和生成该产品的工厂打交道,工厂具体来负责产品的实现 package cn.javass.dp.simplefactory.example4; /** * 某个接口(通用的.抽象的.非具体的功能的) */ public interface Api { /** * 某个具体的功能方法的定义,用test1来演示一下. * 这里的功能很简单,把传入的s打印输出即可 * @param s 任意想要打印输出的字符串 */ public void test1(String s); }

【Javascript设计模式】第二课 神奇的魔术师——简单工厂模式

所谓简单工厂模式就是由一个方法来决定到底要创建那个类的实例,而这些实例经常都拥有相同的接口. 简单工厂模式主要运用一下几种情况(添加个人理解) 1.对象的构建有规律性,大部分相同只有个别不同,重复代码多 2.需要依赖具体环境创建不同的实例 3.处理大量具有相同属性的小对象 具体我们来看一个小例子: 大家在开发过程中经常遇到登陆模块,首先看以下的的具体的需求: 1.用户在输入框中输入的内容不符合规范,需要定义一个提示框提示:"您输入的内容不符合规范,请重新输入" 2.用户登陆提示用户不存

(三) 简单工厂模式

转载: http://www.cnblogs.com/zuoxiaolong/p/pattern4.html 上一章我们着重讨论了代理模式,以及其实现原理,相信如果你看完了整篇博文,应该就对代理模式很熟悉了. 本章我们讨论简单工厂模式,LZ当初不小心夸下海口说不和网络上传播的教学式模式讲解雷同,所以现在感觉写一篇博文压力颇大. 如何来介绍简单工厂呢,LZ着实费了不少心思,这个模式本身不复杂,但其实越是不复杂的模式越难写出特点,因为它太简单. 为了便于各位看后面例子的时候容易理解,LZ这里先给出引

"围观"设计模式(8)--创建型之简单工厂模式、工厂方法模式、抽象工厂模式

工厂模式的核心思想在我认为是将类创建的权利授予给工厂类,其他的类不允许创建,授予了权限的类创建好之后,需要某些的对象的时候,可以去工厂当中去取.也就是像一个工厂一样,用的人不需要关心对象怎么来的,你只需要关心怎么用就好了.工厂模式细分为三种,简单工厂.工厂方法.抽象工厂三种模式.这三种模式比较相似,往往会引发混淆,本文主要结合实际的例子去进行区分.理清三者之间的关系与适用范围. 概述 简单工厂 对于简单工厂,我个人的理解是,直接实现一个方法,要生产什么由这个方法以及传入的参数来决定. 工厂方法