用户管理系统接口设计(用户接口功能)

网友投稿 727 2022-12-26


本篇文章给大家谈谈用户管理系统接口设计,以及用户接口功能对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享用户管理系统接口设计的知识,其中也会对用户接口功能进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

VB学生信息管理系统中的用户接口设计怎么做

可以使用3张表来实现用户,user用来存放用户的姓名,密码,描述等,有一个关键字FUserID用户组,usergroup用来存放用户组的名称,描述,有一个关键字FUserGroupID关系表,relation用来存放用户与用户组的关联,关联FUserID,FUserGroupID注册的时候把用户信息存放到表user中,用户组信息存放到表usergroup,两者关系存放在表relation在用户登录的时候与user表中的数据进行比较,如果用户名和密码多正确,允许登录系统同时得到他的用户组,以便判断后面的系统模块是否拥有权限去操作如果更负责一点的话,可以加一个权限表,把系统的所有模块多和权限进行关联每一个用户建立的同时再分配权限,操作时多进行权限的判断

用户管理系统 - 用户权限设计(RBAC模型)

权限管控可以通俗的理解为权力限制用户管理系统接口设计,即不同的人由于拥有不同权力,他所看到的、能使用的可能不一样。对应到一个应用系统,其实就是一个用户可能拥有不同的数据权限(看到的)和操作权限(使用的)。

Access Control List,ACL是最早的、最基本的一种访问控制机制,是基于客体进行控制的模型,在其他模型中也有ACL的身影。为了解决相同权限的用户挨个配置的问题,后来也采用了用户组的方式。

原理:每一个客体都有一个列表,列表中记录的是哪些主体可以对这个客体做哪些行为,非常简单。

例如:当用户A要对一篇文章进行编辑时,ACL会先检查一下文章编辑功能的控制列表中有没有用户A,有就可以编辑,无则不能编辑。再例如:不同等级的会员在产品中可使用的功能范围不同。

缺点:当主体的数量较多时,配置和维护工作就会成本大、易出错。

Discretionary Access Control,DAC是ACL的一种拓展。

原理:在ACL模型的基础上,允许主体可以将自己拥有的权限自主地授予其他主体,所以权限可以任意传递。

例如:常见于文件系统,LINUX,UNIX、WindowsNT版本的操作系统都提供DAC的支持。

缺点:对权限控制比较分散,例如无法简单地将一组文件设置统一的权限开放给指定的一群用户。主体的权限太大,无意间就可能泄露信息。

Mandatory Access Control,MAC模型中主要的是双向验证机制。常见于机密机构或者其他等级观念强烈的行业,如军用和市政安全领域的软件。

原理:主体有一个权限标识,客体也有一个权限标识,而主体能否对该客体进行操作取决于双方的权限标识的关系。

例如:将军分为上将中将少将,军事文件保密等级分为绝密机密秘密,规定不同军衔仅能访问不同保密等级的文件,如少将只能访问秘密文件用户管理系统接口设计;当某一账号访问某一文件时,系统会验证账号的军衔,也验证文件的保密等级,当军衔和保密等级相对应时才可以访问。

缺点:控制太严格,实现工作量大,缺乏灵活性。

(Attribute-Based Access Control),能很好地解决RBAC的缺点,在新增资源时容易维护。

原理:通过动态计算一个或一组属性是否满足某种机制来授权,是一种很灵活的权限模型,可以按需实现不同颗粒度的权限控制。

属性通常有四类:

例如:早上9:00 11:00期间A、B两个部门一起以考生的身份考试,下午14:00 17:00期间A、B两个部门相互阅卷。

缺点:规则复杂,不易看出主体与客体之间的关系,实现非常难,现在应用的很少。

RBAC的核心在于用户只和角色关联,而角色代表对了权限,是一系列权限的集合。

RBAC三要素:

在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系同样也存在继承关系防止越权。

RBAC模型可以分为:RBAC 0、RBAC 1、RBAC 2、RBAC 3 四个阶段,一般公司使用RBAC0的模型就可以。另外,RBAC 0相当于底层逻辑,后三者都是在RBAC 0模型上的拔高。

我先简单介绍下这四个RBAC模型:

RBAC 0模型: 用户和角色、角色和权限多对多关系。

简单来说就是一个用户拥有多个角色,一个角色可以被多个用户拥有,这是用户和角色的多对多关系;同样的,角色和权限也是如此。

RBAC 0模型如下图:没有画太多线,但是已经能够看出多对多关系。

RBAC 1模型: 相对于RBAC 0模型,增加了角色分级的逻辑,类似于树形结构,下一节点继承上一节点的所有权限,如role1根节点下有role1.1和role1.2两个子节点。

角色分级的逻辑可以有效的规范角色创建(主要得益于权限继承逻辑),我之前做过BD工具(类CRM),BD之间就有分级(经理、主管、专员),如果采用RBAC 0模型做权限系统,我可能需要为经理、主管、专员分别创建一个角色(角色之间权限无继承性),极有可能出现一个问题,由于权限配置错误,主管拥有经理都没有权限。

而RBAC 1模型就很好解决了这个问题,创建完经理角色并配置好权限后,主管角色的权限继承经理角色的权限,并且支持针对性删减主管权限。

RBAC 1模型如下图:多对多关系仍旧没有改变,只增加角色分级逻辑。

[图片上传中...(-95cc0-1640060170347-0)]

RBAC 2模型: 基于RBAC 0模型,对角色增加了更多约束条件。

如角色互斥,比较经典的案例是财务系统中出纳不得兼管稽核,那么在赋予财务系统操作人员角色时,同一个操作员不能同时拥有出纳和稽核两个角色。

如角色数量限制,例如:一个角色专门为公司CEO创建的,最后发现公司有10个人拥有CEO角色,一个公司有10个CEO?

这就是对角色数量的限制,它指的是有多少用户能拥有这个角色。

RBAC 2 模型主要是为了增加角色赋予的限制条件,这也符合权限系统的目标:权责明确,系统使用安全、保密。

RBAC 3模型: 同样是基于RBAC0模型,但是综合了RBAC 1和RBAC 2的所有特点。这里就不在多描述,读者返回去看RBAC 1和RBAC 2模型的描述即可。

RBAC 权限模型由三大部分构成,即用户管理、角色管理、权限管理。用户管理按照企业架构或业务线架构来划分,这些结构本身比较清晰,扩展性和可读性都非常好。角色管理一定要在深入理解业务逻辑后再来设计,一般使用各部门真实的角色作为基础,再根据业务逻辑进行扩展。权限管理是前两种管理的再加固,做太细容易太碎片,做太粗又不够安全,这里我们需要根据经验和实际情况来设计。

用户管理中的用户,是企业里每一位员工,他们本身就有自己的组织架构,我们可以直接使用企业部门架构或者业务线架构来作为线索,构建用户管理系统。

需要特殊注意:

实际业务中的组织架构可能与企业部门架构、业务线架构不同,需要考虑数据共享机制,一般的做法为授权某个人、某个角色组共享某个组织层级的某个对象组数据。

在设计系统角色时,我们应该深入理解公司架构、业务架构后,再根据需求设计角色及角色内的等级。一般角色相对于用户来说是固定不变的,每个角色都有自己明确的权限和限制,这些权限在系统设计之处就确定了,之后也轻易不会再变动。
(1)自动获得基础角色
当员工入职到某部门时,该名员工的账号应该自动被加入该部门对应的基础角色中,并拥有对应的基础权限。这种操作是为了保证系统安全的前提下,减少了管理员大量手动操作。使新入职员工能快速使用系统,提高工作效率。

(2)临时角色与失效时间

公司业务有时需要外援来支持,他们并不属于公司员工,也只是在某个时段在公司做支持。此时我们需要设置临时角色,来应对这种可能跨多部门协作的临时员工。

如果公司安全级别较高,此类账号默认有固定失效时间,到达失效时间需再次审核才能重新开启。避免临时账号因为流程不完善,遗忘在系统中,引起安全隐患。

(3)虚拟角色

部门角色中的等级,可以授权同等级的员工拥有相同的权限,但某些员工因工作原因,需要调用角色等级之外的权限,相同等级不同员工需要使用的权限还不相同。这种超出角色等级又合理的权限授予,我们可以设置虚拟角色。这一虚拟角色可集成这一工作所需的所有权限,然后将它赋予具体的员工即可。这样即不用调整组织架构和对应的角色,也可以满足工作中特殊情况的权限需求。

(4)黑白名单

白名单:某些用户自身不拥有某部门的顶级角色,但处于业务需求,需要给他角色外的高级权限,那么我们可以设计限制范围的白名单,将需要的用户添加进去即可。在安全流程中,我们仅需要对白名单设计安全流程,即可审核在白名单中的特殊用户,做到监控拥有特殊权限的用户,减少安全隐患。

黑名单:比较常见的黑名单场景是某些犯了错误的员工,虽然在职,但已经不能给他们任何公司权限了。这种既不能取消角色关联,也不能完全停用账号的情况,可以设置黑名单,让此类用户可以登录账号,查看基本信息,但大多数关键权限已经被黑名单限制。

权限管理一般从三个方面来做限制。页面/菜单权限,操作权限,数据权限。

(1)页面/菜单权限
对于没有权限操作的用户,直接隐藏对应的页面入口或菜单选项。这种方法简单快捷直接,对于一些安全不太敏感的权限,使用这种方式非常高效。

(2)操作权限
操作权限通常是指对同一组数据,不同的用户是否可以增删改查。对某些用户来说是只读浏览数据,对某些用户来说是可编辑的数据。

(3)数据权限
对于安全需求高的权限管理,仅从前端限制隐藏菜单,隐藏编辑按钮是不够的,还需要在数接口上做限制。如果用户试图通过非法手段编辑不属于自己权限下的数据,服务器端会识别、记录并限制访问。

数据权限如何管控

数据权限可以分为行权限和列权限。行权限控制:看多少条数据。列权限控制:看一条数据的多少个字段
简单系统中可以通过组织架构来管控行权限,按照角色来配置列权限,但是遇到复杂情况,组织架构是承载不了复杂行权限管控,角色也更不能承载列的特殊化展示。

目前行业的做法是提供行列级数据权规则配置,把规则当成类似权限点配置赋予某个角色或者某个用户。

网易有数做法:
https://youdata.163.com/index/manual/o/6System_management/data_role.html

1.超级管理员
超级管理员是用来启动系统,配置系统的账号。这个账号应该在配置好系统,创建管理员之后被隐藏起来。超级管理员账号拥有系统中全部权限,可穿梭查看各部门数据,如果使用不恰当,是系统管理的安全隐患。

2.互斥角色如何处理
当用户已经有用的角色和即将添加的角色互相互斥时,应该在添加新角色时,提示管理员因角色互斥的原因,无法进行新角色添加。如需添加,要先撤销掉前一个角色,再添加新角色。

3.用户管理权限系统设计一定要简单清晰
在设计权限系统之处,一定要理清思路,一切从简,能不增加的多余角色和权限逻辑,就一定不要增加。因为随着公司业务的扩大,权限和角色也会随之增多,如果初期设计思路不严谨,那么权限系统会随着业务的扩大而无限混乱下去,此时再来整理权限,已经太晚了。所以初期设计就一定要条理清晰,简单明了,能避免后续非常多不必要的麻烦。

4.无权提示页
有时员工 A 会直接给员工 B 分享他当下正在操作的页面,但有可能员工 B 无权查看。此时我们应该在这里考虑添加「无权提示页」,避免粗暴的 404 页面让员工 B 以为是系统出错了。

三层架构用户服务系统的设计与实现

三层架构用户服务系统的设计与实现

基于三层架构的用户服务系统的设计实现了用户的集中管理和授权,为不同信息平台提供了验证授权及信息管理的接口,进一步理顺了组织机构的层层关系,方便用户使用。具体如何实现的呢,一起来看看下面的文章!

1、三层体系架构简介

随着信息技术的不断发展,三层架构(C/S或B/S)现已经成为主流技术。三层结构模式是目前流行的协同开发模型,这种模式将应用开发中的部件划分为三层:表示层、业务逻辑层、数据访问层。它的优点是联机的用户数比较多,每次交易的时间都比较短,伸缩性和容错性强。同时支持客户端应用程序的开发和分布,能通过客户端计算机与应用程序逻辑分开。三层模式都在其安全环境中进行。软件的开发工作和维护工作可相对独立进行。

2、用户服务系统的架构

用户服务系统的设计思想是建立一个相对独立于各个应用系统,能够统一管理用户帐户信息和组织机构,方便用户使用和管理的接口系统,解决原有信息系统中,不同应用平台中同一用户有多个的用户账户的问题。

本系统定位针对于各级部门,面向各级部门所有人员,提供统一、完善的、易用的用户认证和组织机构管理平台,对用户的身份认证和组织机构进行统一管理和维护。

2.1 需求分析

2.1.1 统一认证的需求分析

统一认证的前提是不同应用系统平台所有用户信息的数据都存储在数据库中。应用ASP.NET技术将统一认证封闭为WEB服务,方便不同应用系统的调用,达到统一认证、管理、授权的目的。因此要求该部分功能支持单点登录,即所有应用系统在用户登录时能统一用户名和口令。同时能够设置用户权限,避免对原有应用平台进行规模较大的修改。由于用户服务系统要和其他应用系统集成才能为其提供服务,不同的应用系统可能会使用不同的数据库,或运行在不同的操作系统平台上,因此,要求具备良好的平台兼容性,屏蔽差异。在安全性方面,要杜绝漏洞和各种隐患,使信息的传递在安全保障范围内。

2.2.2 组织结构管理的需求分析

组织结构管理系统的体系模块划分需求如下:

(1)组织机构及机构间关系的建立、修改、删除等;如创建一个用户,将用户分配到某个部门、将用户赋予某个角色等。(2)组织机构(集)的检索:如获取某部门的所有用户、得到某用户的部门列表、获取某部门的.上级部门等。(3)各类机构提供方便获取关联对象的属性。如dept.Users可获取该部门的直属用户、org.Depts可获取该单位的直属部门。(4)机构(集)的排序功能。组织机构服务提供接口方法用以对各类实体排定次序。如部门在单位内的排序、用户在部门内的排序等。

2.2 功能设计

用户服务系统由两部分组成:统一认证和组织结构管理。

统一认证:负责提供用户身份认证服务。主要包括用户注册、帐号关联和用户认证。用户注册是指用户在统一身份认证服务中注册帐号,包括新用户注册和用户修改注册信息两部分。组织结构管理:管理信息平台所有用户的信息,为管理员提供操作界面管理用户、账号、角色、单位、部门等信息。主要由3部分组成:(1)数据库:用户信息与用户账号信息分开处理,分别在数据库的不同表中,这样操作对系统扩充性更为有利。(2)管理模块:主要包括组织结构及单位管理、部门管理、用户管理、账号管理、角色管理等。(3)管理端:为管理操作提供可视化管理界面。

3、系统关键技术的实现

3.1 用户密码进行MD5加密

MD5是一种单向加密的加密算法,经常用于系统用户登录认证方面。本系统中,新用户注册帐号时,若将密码直接保存到数据库中,万一信息遭遇泄露,不能保证数据的安全。因此,在密码数据存储时,对其进行MD5加密操作后再保存,这样,即使密码信息暴露,也不会泄露真正的含义。用户登录时,也将用户的密码数据进行加密后再和数据库中数据进行比较,即可达到验证身份目的。

.NET中System.Security.Cryptography命名空间包含的MD5CryptoServiceProvider类,提供专门用于MD5单向数据加密的方法。使用时只需在程序中实例化MD5CryptoServiceProvider类,调用MD5加密解密函数,并以明文作为参数就可以实现加密功能。具体语法如下:

System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(txtPwd.Text.Trim(),”MD5”).ToString();

3.2 Remoting远程调用

在系统开发的后期,为了达到跨平台、跨地域的目的,我们采用了Remoting技术来实现。.NET Remoting就是传统DCOM的替代,主要实现进程间的通信,以一种对象通过应用程序域与另一对象进行交互为框架,实现协同工作。这也正是我们使用Remoting的原因。

;

下图属于哪一类设计原则

Copyright © 1999-2020, CSDN.NET, All Rights Reserved
java
打开APP
成胜文
关注
设计模式 — 6大设计原则(单一职责和里氏替换原则) 原创
2022-11-04 01:26:20
成胜文
码龄4年
关注
6大设计原则
说明
单一职责原则
示例 一
示例 二
总结
里氏替换原则
示例 一
示例 二
示例 三
总结
说明
6大设计原则来自于观看 “设计模式之禅” 一书后的总结
单一职责原则
单一职责原则的英文名称是Single Responsibility Principle,简称是SRP。这个原则存在争议之处在哪里呢?就是对职责的定义,什么是类的职责,以及怎么划分类的职责。下面举个例子。
示例 一
正例:权限认证(RBAC模式)(Role - Based Access Control,基于角色的访问控制,通过分
配和取消角色来完成用户权限的授予和取消,使动作主体(用户)与资源的行为(权限)分离)。
1
2
1
2
再举一个反例,用户管理、修改用户的信息、增加机构(一个人属于多个机构)、增加角色等,用户有这么多的信息和行为要维护,当我们把这些写到一个接口中,都是用户管理类嘛,如下示类图:
用户信息维护类图
这个接口设计的问题在于用户的属性和用户的行为没有分开,对于后期的维护特别不友好,应该把用户的信息
抽取成一个Bo(Bussiness Object,业务对象),把行为抽取成一个Biz(Business Logic,业务逻辑)
1
2
1
2
如下图所示:
在这里插入图片描述
代码清单 1 - 1 分清职责后的代码示例
.....
IUserBiz userInfo = new UserInfo();
//我要赋值了,我就认为它是一个纯粹的BO
IUserBO userBO = (IUserBO)userInfo;
userBO.setPassword("abc");
//我要执行动作了,我就认为是一个业务逻辑类
IUserBiz userBiz = (IUserBiz)userInfo;
userBiz.deleteUser();
.....
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
动作分析:为什么要把一个接口拆分成两个呢?其实,在实际的使用中,我们更倾向于使用两个不同的类或接口:一个是IUserBO,一个是IUserBiz,类图如下图所示。
在这里插入图片描述
归纳:单一职责原则的定义是:应该有且仅有一个原因引起类的变更
示例 二
电话这玩意,是现代人都离不开,电话通话的时候有4个过程发生:拨号、通话、回应、挂机,那我们写一个接口,其类图下所示:
在这里插入图片描述
代码清单:电话过程
public interface Iphone {
//拨通电话
public void dial(String phoneNumber);
//通话
public void chat(Object o);
//通话完毕,挂电话
public void hangup();
}
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
这个接口乍看上去没啥毛病,平常开发也是这样写,单一职责原则要求一个接口或类只有一个原因引起变化,也就是一个接口或类只有一个职责,它就负责一件事情,但是看上面的接口只负责一件事情吗?是只有一个原因引起变化吗?好像不是!
IPhone这个接口可不是只有一个职责,它包含了两个职责:一个是协议管理,一个是数据传送。dial()和hangup()两个方法实现的是协议管理,分别负责拨号接通和挂机;chat()实现的是数据的传送,把我们说的话转换成模拟信息或数字信号传递到对方,然后再把对方传递过来的信号还原成我们听得懂的语言。我们可以这样考虑这个问题,协议接通的变化会引起这个接口或实现类的变化吗?会的!那数据传送(想想看,电话不仅仅可以通话,还可以上网)的变化会引起这个接口或实现类的变化吗?会的!那就很简单了,这里有两个原因都引起了类的变化。这两个职责会互相影响吗?电话拨号,我只要能接通就成,不管是电信的还是网通的协议;电话连接后还关心传递的是什么数据吗?通过这样的分析,我们发现类图上的IPhone接口还包含了两个职责,而且这两个职责的变化不互相影响,那就考虑拆分成两个接口,如下图所示:
在这里插入图片描述
这个类图看上去有点复杂了,完美满足了单一职责原则的要求,每个接口职责分明,结构清晰,但是一般在设计的时候不会采用这种方式,一个手机类要把ConnectionManager和DataTransfer组合在一块才能使用。组合是一种强耦合关系,你和我都有共同的生命期,这样的强耦合关系还不如使用接口实现的方式呢,而且还增加了类的复杂性,多了两个类,经过这样的思考后,我们再修改一下类图,如下图所示:
在这里插入图片描述
这样的设计才是完美的,一个类实现了两个接口,把两个职责融合在一个类中,你会觉得这个Phone有两个原因引起变化了呀,是的,但是别忘记了我们是面向接口编程,我们对外公布的是接口而不是实现类。而且,如果真要实现类的单一职责,这个就必须使用上面的组合模式了,这会引起类间耦合过重、类的数量增加等问题,人为地增加了设计的复杂性。
总结
通过上面的例子,总结一下单一职责原则有什么好处:
1、类的复杂性降低,实现什么职责都有清晰明确的定义;
2、可读性提高,复杂性降低,那当然可读性提高了;
3、可维护性提高,可读性提高,那当然更容易维护了;
4、变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类
有影响,对其他的接口无影响,这对系统的扩展性、维护性都有非常大的帮助。
1
2
3
4
5
1
2
3
4
5
注意:单一职责原则提出了一个编写程序的标准,用 “职责” 或 “变化原因” 来衡量接口或类设计得是否优良,但是 “职责” 和 “变化原因” 都是不可度量的,因项目而异,因环境而异。
里氏替换原则
在面向对象的语言中,继承是必不可少的、非常优秀的语言机制,它有如下优点:
1、代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性;
2、提高代码的重用性;
3、子类可以形似父类,但又异于父类,“龙生龙,凤生凤,老鼠生来会打洞” 是说子拥有父的 “种”,“世界上
没有两片完全相同的叶子” 是指明子与父的不同;
4、提高代码的可扩展性,实现父类的方法就可以 “为所欲为” 了,君不见很多开源框架的扩展接口都是通过
继承父类来完成的;
5、提高产品或项目的开放性
1
2
3
4
5
6
7
1
2
3
4
5
6
7
自然界的所有事物都是优点和缺点并存的,即使是鸡蛋,有时候也能挑出骨头来,继承的缺点如下:
1、继承是侵入性的,只要继承,就必须拥有父类的所有属性和方法;
2、降低代码的灵活性。子类必须拥有父类的属性和方法,让子类自由的世界中多了些约束;
3、增加了耦合性。当父类的常量、变量和方法被修改时,必需要考虑子类的修改,而且在缺乏规范的环境下,
这种修改可能带来非常糟糕的结果一大片的代码需要重构。
1
2
3
4
1
2
3
4
Java使用extends关键字来实现继承,它采用了单一继承的规则,C++则采用了多重继承的规则,一个子类可以继承多个父类。从整体上来看,利大于弊,怎么才能让 “利” 的因素发挥最大的作用,同时减少 “弊” 带来的麻烦呢? 解决方案是引入里氏替换原则 (Liskov Substitution Principle,LSP),什么是里氏替换原则呢?它有两种定义:
第一种定义,也是最正宗的定义:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有
程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。
第二种定义:所有引用基类的地方必须能透明地使用其子类的对象。
1
2
3
4
1
2
3
4
第二个定义是最清晰明确的,通俗点讲,只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类。但是,反过来就不行了,有子类出现的地方,父类未必就能适应。
示例 一
里氏替换原则为良好的继承定义了一个规范,一句简单的定义包含了4层含义。
1.子类必须完全实现父类的方法,举个例子,大家都打过CS吧,非常经典的FPS类游戏,我们来描述一下里面用到的枪,如下图:
在这里插入图片描述
枪的主要职责是射击,如何射击在各个具体的子类中定义,手枪是单发射程比较近,步枪威力大射程远,机枪用于扫射。在士兵类中定义了一个方法KillEnemy,使用枪来杀敌人,具体使用什么枪来杀敌人,调用的时候才知道,AbstractGun类的源程序
枪支的抽象类:
public abstract class AbstractGun {
//枪用来干什么?杀敌!
public abstract void shoot();
}
1
2
3
4
5
1
2
3
4
5
手枪、步枪、机枪的实现类如下面代码
public class Handgun extends AbstractGun{
//手枪的特点是携带方便,射程短
@Override
public void shoot() {
System.out.println("手枪射击...");
}
}
public class MachineGun extends AbstractGun{
@Override
public void shoot() {
System.out.println("机枪射击...");
}
}
public class Rifle extends AbstractGun{
//步枪的特点是射程远,威力大
@Override
public void shoot() {
System.out.println("步枪射击...");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
有了枪支,还要有能够使用这些枪支的士兵,代码清单如下:
士兵的实现类:
public class Soldier {
//定义士兵的枪支
private AbstractGun gun;
//给士兵一支枪
public void setGun(AbstractGun _gun) {
this.gun = _gun;
}
public void killEnemy() {
System.out.println("士兵开始杀敌人...");
gun.shoot();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
定义士兵使用枪来杀敌,但是这把枪是抽象的,具体是手枪还是步枪需要在战场前(也就是场景中)前通过setGun方法确定。场景类Client的代码如下所示:
public class Client {
public static void main(String[] args) {
//产生三毛这个士兵
Soldier sanMao = new Soldier();
//给三毛一支枪
sanMao.setG

如何设计支持使用第三方帐号登陆的帐户系统的数据库表

实现用户认证授权系统的方法如下:

首先,统一用户管理系统在设计时就要能建立一个能适应各种系统权限管理要求的权限模型。

对于己建立的老系统,各系统将自己的用户角色管理,角色一权限管理等部分抽离出来,统一放在统一用户管理系统中。

而对于新建立的系统,各系统在建设的初期就要把自己权限设计的要求提交给统一用户管理系统,按照其需求在本身统一用户管理系统的权限模型上去构建出该系统的实例。

那么管理员就可以通过统一授权系统为各用户在不同系统的权限进行配置。

在登陆时各系统就调用相关的统一认证和授权接口,获取用户相关的权限信息,进到各系统后再创建用户,将相关的权限信息赋予给用户类。

然后就可以在应用系统中进行权限验证。

   这是一个终极目标的做法,这个方法是将所有系统的权限控制部分都建在统一用户管理系统中。这种方式既能对用户进行统一的授权和认证,也能展现各用户的统一权限视图。

如何实现用户认证授权系统

1、首先打开I电脑桌面用户管理系统接口设计,单击此电脑右键选择属性按钮。

2、进入系统属性设置界面用户管理系统接口设计,选择远程按钮。

3、然后需要单击选择用户选项。

4、然后需要选择添加选项按钮。

5、单击高级选项,选择立即查找选项。

6、找到你授权远程用户管理系统接口设计的用户。

7、选择你需要的用户单击确定即可。

关于用户管理系统接口设计和用户接口功能的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 用户管理系统接口设计的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于用户接口功能、用户管理系统接口设计的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java static方法用法实战案例总结
下一篇:美团平台api测试工具(美团推单检测工具)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~