编写一段满足设计原则的用户登录注册程序代码
时间: 2024-06-11 17:08:34 浏览: 13
以下是一段满足设计原则的用户登录注册程序代码:
1. 单一职责原则:将登录和注册功能分开实现,每个函数只负责一个功能。
```
class User:
def __init__(self, username, password):
self.username = username
self.password = password
class Login:
def login(self, username, password):
user = self.get_user(username)
if user and user.password == password:
print("登录成功")
else:
print("用户名或密码错误")
def get_user(self, username):
# 根据用户名获取用户信息
pass
class Register:
def register(self, username, password):
user = User(username, password)
self.save_user(user)
print("注册成功")
def save_user(self, user):
# 将用户信息保存到数据库或文件中
pass
```
2. 开放封闭原则:对修改关闭,对扩展开放。可以通过继承和多态来实现。
```
class Login:
def login(self, username, password):
user = self.get_user(username)
if user and user.password == password:
self.success()
else:
self.fail()
def get_user(self, username):
# 根据用户名获取用户信息
pass
def success(self):
# 登录成功后的操作
pass
def fail(self):
# 登录失败后的操作
pass
class EmailLogin(Login):
def get_user(self, email):
# 根据邮箱获取用户信息
pass
class PhoneLogin(Login):
def get_user(self, phone):
# 根据手机号获取用户信息
pass
```
3. 依赖倒置原则:高层模块不应该依赖底层模块,而应该依赖其抽象。抽象不应该依赖细节,细节应该依赖抽象。
```
class UserGateway:
def get_user(self, username):
# 获取用户信息
pass
def save_user(self, user):
# 保存用户信息
pass
class Login:
def __init__(self, user_gateway):
self.user_gateway = user_gateway
def login(self, username, password):
user = self.user_gateway.get_user(username)
if user and user.password == password:
self.success()
else:
self.fail()
def success(self):
# 登录成功后的操作
pass
def fail(self):
# 登录失败后的操作
pass
class Register:
def __init__(self, user_gateway):
self.user_gateway = user_gateway
def register(self, username, password):
user = User(username, password)
self.user_gateway.save_user(user)
print("注册成功")
```
4. 接口隔离原则:客户端不应该依赖它不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上。
```
class Login:
def __init__(self, user_gateway):
self.user_gateway = user_gateway
def login(self, username, password):
user = self.user_gateway.get_user(username)
if user and user.password == password:
self.success()
else:
self.fail()
def success(self):
# 登录成功后的操作
pass
def fail(self):
# 登录失败后的操作
pass
class Register:
def __init__(self, user_gateway):
self.user_gateway = user_gateway
def register(self, username, password):
user = User(username, password)
self.user_gateway.save_user(user)
print("注册成功")
class UserGateway:
def get_user(self, username):
# 获取用户信息
pass
def save_user(self, user):
# 保存用户信息
pass
class EmailGateway:
def get_user_by_email(self, email):
# 根据邮箱获取用户信息
pass
class PhoneGateway:
def get_user_by_phone(self, phone):
# 根据手机号获取用户信息
pass
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)