架构师训练营第三周作业

发布于: 2020 年 06 月 23 日
架构师训练营第三周作业

作业一:

1. 请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。

2. 请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图 3。

from django.contrib.auth import authenticate, login

from django.contrib.auth.backends import ModelBackend

from django.db.models import Q

 

from django.views.generic.base import View 

from .models import UserProfile

 

class CustomBackend(ModelBackend):

  def authenticate(self, username=None, password=None, **kwargs):

    try:

     

    user=UserProfile.objects.get(Q(username=username) | Q(email=username))

      

      if user.check_password(password):

     

        return user 

    

    except Exception as e

      return None

class LoginView(View):

  

  def get(self, request):

    

    return render(request, "login.html", {})

 

  def post(self, request):

    

    login_form = LoginForm(request.POST)

    

    pre_check = login_form.is_valid()

    

    if pre_check:

     

      user_name = request.POST.get("username", "")

      if UserProfile.objects.filter(email=user_name):

        return render(request, "register.html", {"register_form": register_form, "msg": "用户已经存在"})

      pass_word = request.POST.get("password", "")

      

      user = authenticate(username=user_name, password=pass_word)

      if user is not None:   

        login(request, user) 

        return render(request, "index.html")

      else:

        

        return render(request, "login.html", {"msg":u"用户名或密码错误"})

    else:

      

      return render(request, "login.html", {"login_form":login_form})

from django import forms

 

class LoginForm(forms.Form):

 

  username = forms.CharField(required=True)

 

  password = forms.CharField(required=True, min_length=5)

 

作业二:根据当周学习情况,完成一篇学习总结

1 JUnit设计模式 可重复的解决方案

创建模式:对类的实例化过程进行抽象,解耦

结构模式:将类或者对象组合在一起形成更大的结构

行为模式:对在不同的对象之间划分职责和算法的抽象化,如何对行为进行抽象,解耦

  • 如何写单元测试

  • 单元测试如何执行

2 模式方法的形式

  • 抽象方法

  • 具体方法

  • 钩子方法

3 参数化的单元测试

4 组合模式 一种对象的结构模式

5 装饰器模式

  • Java Servlet 中的应用

  • 同步化装饰器

  • Java I/O 类库简介

  • 流的对称性

发布于: 2020 年 06 月 23 日 阅读数: 9
用户头像

还未添加个人签名 2020.05.25 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第三周作业