2k_Day1:今天是设计模式的大白话1

本文概述了工厂模式、抽象工厂、单例、组合、桥接和建造者等Java设计模式,强调结构型模式的常见性和创建型模式的解耦与扩展目标。

大白话:

原则有一点很难做到,就是定义好的类,只能加不能改(开放-关闭原则)

1.工厂模式就是,比如你定了一个汽车接口,然后小车、中车、大车都继承这个接口,这时,定一个汽车工厂,有一个getcar方法带个入参,在Main里调用getcar决定是创建小中大哪个车的对象。

2.抽象工厂先是工厂模式,然后把工厂类也抽象了,又有实现类来继承抽象工厂类,然后靠入参决定哪个工厂,我觉得就是加多了选择哪个工厂这一层。

3.单例,太简单了,类里有一个new自己的静态属性,一个返回属性的静态方法。那程序启动就会有这个类的唯一对象。然后可以分是启动时就创建,还是使用时再创建。

4.组合模式,经常使用,树结构,类里面属性有List<T>集合的属性。比如菜单有标题、code,还有下级菜单集合。

5.桥接模式,看着有点难,用起来就是实现的和抽象的都没耦合,最底一层是1个接口2个实现接口类,用来写实现逻辑,上一层是抽象类,1个接口的对象,构造方法有接口类型的入参,还有这个抽象类要使用的抽象方法,然后一层到实现抽象的类,构造时入参决定哪个实现接口类,抽象方法再用接口的方法。

6.建造者模式,StringBuilder是用它,是一个一个简单的类来实现出一个复杂的类,最后Main里能addItem决定实现哪个类。

今天学了6个,感觉:

结构型设计模式应该能经常见到,而且有时也无意的使用了

创建型设计模式目的是为了解耦,或者做到能扩展,实现类的解耦,抽象类的也解耦。

### Django MTV模式详解 Django 是一个基于 Python 的高级 Web 框架,采用了经典的 **MTV(Model-Template-View)** 设计模式。以下是对其核心组成部分的详细说明: #### 1. Model(模型) 模型是数据的核心表示形式,主要负责与数据库交互。它是应用程序的数据层,定义了如何存储、检索和更新数据[^1]。 在 Django 中,模型是一个 Python 类,继承自 `django.db.models.Model`,并通过字段属性描述表结构。例如: ```python from django.db import models class Article(models.Model): title = models.CharField(max_length=100) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) ``` 这段代码定义了一个名为 `Article` 的模型,对应数据库中的表格,包含三个字段:标题 (`title`)、内容 (`content`) 和创建时间 (`created_at`)。 --- #### 2. Template(模板) 模板是 HTML 文件,用于展示数据给用户。它是一种前端表现形式,允许嵌入动态变量和逻辑控制语句[^2]。 Django 提供了一套强大的模板引擎,支持条件判断、循环以及其他常用语法。例如: ```html <!DOCTYPE html> <html> <head> <title>{{ article.title }}</title> </head> <body> <h1>{{ article.title }}</h1> <p>{{ article.content }}</p> </body> </html> ``` 在这个例子中,`{{ article.title }}` 和 `{{ article.content }}` 是占位符,会被实际数据替换。 --- #### 3. View(视图) 视图是连接模型和模板的关键组件,负责处理用户的请求并返回响应。它充当控制器的角色,决定显示什么内容以及如何显示[^3]。 视图通常是 Python 函数或类,接收 `HttpRequest` 对象作为输入,并返回 `HttpResponse` 或渲染后的模板。例如: ```python from django.shortcuts import render from .models import Article def article_detail(request, id): article = Article.objects.get(id=id) return render(request, 'article.html', {'article': article}) ``` 此代码片段展示了如何查询指定 ID 的文章,并将结果传递给模板进行渲染。 --- ### 总结 MTV 模式的本质在于分离关注点,使开发人员能够专注于各自的任务而不互相干扰。模型管理数据,模板负责呈现界面,视图协调两者之间的关系[^4]。这种分层架构提高了代码的可维护性和扩展性。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值