web 设计 暑期课笔记 Ⅲ —— Web 设计模式

Web 设计模式

1. 挑战与应对

1.1 面向页面开发模式所面临的挑战

业务需求的不确定性
技术发展导致的变更
开发过程中的迁移

1.2 应对

1.2.1 分层(Layering)

企业设计模式中的一种。
计算机中通用的想法

1.2.1.1 定义

层(Layering)是指一组功能上或逻辑上相关的类集合
层间应高内聚(cohesion)、松耦合(coupling)
层内应降低依赖性(dependency)
软件设计中层的概念与网络中层(tier)的概念还有所不同,后者更多指网络中的不同位置
分层是计算机领域中最广泛应用的一种设计思想

1.2.1.2 好处

可维护性更强,更能应对变更
可靠性更好
可复用性更好

1.2.1.3 坏处

降低了代码及项目架构的可理解性
降低了代码的执行效率

1.2.1.4 典型的软件分层

视图,业务,数据

在这里插入图片描述

1.2.1.5 两层模型

两层之间仅存在数据接口

1.2.1.6 传统两层式的问题

牵涉的问题太多,太臃肿了。
且牵一发而动全身

1.2.1.7 三层模型

如 1.2.1.4 所示,比较典型的是 MVC 模型

1.2.2 设计模式(Design Patterns)

在日常函数的基础上组织成更好的抽象。

1.2.2.1 Design Pattern

可在大量场景下广泛复用的设计思想
比如Adapter、Factory、Template、MVC等
Front Controller则组合使用了Command和Decorator模式

1.2.2.2 Enterprise Pattern

大型项目总体架构/蓝图的最佳实践
Layering就是其中之一
Table Data Gateway、Domain Model、Active Record等

听着听着,我觉得我好像懂了。

1.2.2.3 Adapter 模式 / 适配器模式

Adapter 模式的存在就像单词书里的 Abandon,我笑死了哈哈哈

屏蔽忽略底层差别

针对不同接口的常用模式
单独使用无法避免对具体接口的依赖,如例子中的DatabaseAdapterPDO类

在这里插入图片描述

1.2.2.4 简单工厂模式

是标准工厂方法和抽象工厂的综合简化
$adapter = DatabaseAdapterFactory::create(‘PDO’, $connectionValues);
$results = $adapter->runQuery(‘SELECT * FROM Artists’);
PDO也可以用常量定义,甚至从配置文件中读出

1.2.2.5 Template模式

在抽象类中定义了基本步骤,在子类中进行了细节的具体实现

1.2.2.6 依赖注入

Dependency Injection,Martin Fowler提出的新型设计模式
降低类内部的依赖性

1.2.2.7 MVC 模式

Model-View-Controller模式
Model表示应用的数据
View表示应用的人机交互界面
Controller是整个应用的中枢

标准桌面应用经常会跟Observer模式合用,而在Web应用中,Controller需要分为JS和PHP两个部分
MVC模式在Web中有很多变种,并有很多框架来支持
JS:Angular、Backbone、Ember、Vue等
PHP:CakePHP、Zend等
Java EE 框架本身就是依据 MVC 模式设计的

2. 总结:主要思想

没仔细听,大概就是总结了一下设计模式的好处

基于标准的思想
无懈可击的思想(灵活性)
平稳退化的思想
渐进增强的思想
组件复用的思想:Corba (what’s this?
高性能设计的思想
移动优先的思想

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值