zoukankan      html  css  js  c++  java
  • golang单一职责原则接口设计例子

    golang单一职责原则接口设计

    理解:按照职责的方式划分接口,就跟权限管理中,以角色进行分配权限一样

    (虽然golang比较偏向于面向过程的语言,但是因为涉及接口的概念,感觉这个接口设计同样使用于golang的接口设计)

    package main
    
    import (
    	// "errors"
    	"log"
    )
    
    
    // IUserBo 只负责用户属性的接口
    type IUserBo interface{
    
    	// 获取用户的Id
    	GetUserID()
    
    	// 获取用户密码
    	GetUserPW()
    }
    // IUserBiz 只负责用户信息的维护接口
    type IUserBiz interface{
    
    	// 添加用户
    	AddUser()
    
    	// 删除用户
    	RemoveUser()
    
    }
    
    // User 用户属性
    type User struct{
    	ID string
    	PW string
    }
    
    // Users 管理用户
    var Users = make([]*User,0)
    
    
    // GetUserID 获取用户ID
    func(u *User)GetUserID(){
    	log.Println(u.ID)
    }
    
    
    // GetUserPW 获取用户的密码
    func(u *User)GetUserPW(){
    	log.Println(u.PW)
    }
    
    
    // AddUser 添加用户
    func(u *User)AddUser(){
    	for _,v := range Users{
    		if u.ID == v.ID{
    			log.Println("该用户已经存在")
    			return
    		}
    	}
    	Users = append(Users,u)
    }
    
    // RemoveUser 删除用户
    func (u *User)RemoveUser(){
    
    	for i:=0;i<len(Users);i++{
    		if(Users[i].ID==u.ID){
    			// golang的数组删除元素就是这么的简单
    			Users = append(Users[:i],Users[i+1:]...)
    		}
    	}
    
    	log.Println(Users)
    }
    
    func init(){
    	log.SetFlags(log.Ldate|log.Lshortfile)
    	u1 := &User{"1","11"}
    	u2 := &User{"2","12"}
    	u3 := &User{"3","13"}
    	u4 := &User{"4","14"}
    	u5 := &User{"5","15"}
    	Users = append(Users,u1,u2,u3,u4,u5)
    }
    
    
    
    func main(){
    
    	var iso IUserBo
    
    	var isz IUserBiz
    
    	u := &User{"1","11"}
    
    	iso = u
    
    	iso.GetUserID()
    
    	iso.GetUserPW()
    
    	isz = u
    
    	isz.AddUser()
    
    	isz.RemoveUser()
    
    }
    
  • 相关阅读:
    2 爬虫 requests模块
    http协议
    JAVA提高篇
    Java三大特性(封装、继承、多态)
    JavaScript对json对象数组排序(按照某个属性升降序排列)
    js中的闭包
    Java WebService 简单实例
    Quartz 入门详解
    web弹框/层 (layer )的使用
    Shiro
  • 原文地址:https://www.cnblogs.com/MyUniverse/p/13038976.html
Copyright © 2011-2022 走看看