Submit Search
Upload
对“新软攀峰”官网项目中面向对象设计原则和包设计原则的分析与修改
•
0 likes
•
466 views
zhaoyulee
Follow
对“新软攀峰”官网项目中面向对象设计原则和包设计原则的分析与修改
Read less
Read more
Technology
Report
Share
Report
Share
1 of 30
Recommended
Spring 2.x 中文
Spring 2.x 中文
Guo Albert
SCJP ch09
SCJP ch09
r82093403
第9章 t sql程序设计
第9章 t sql程序设计
hanmo1988
Java代码编写的30条建议
Java代码编写的30条建议
yiditushe
希望科技研发部变量命名及编码规范
希望科技研发部变量命名及编码规范
Hongjian Wang
Structs2簡介
Structs2簡介
catonchuang
20151223application of deep learning in basic bio
20151223application of deep learning in basic bio
Charlene Hsuan-Lin Her
E4 8 portfolio
E4 8 portfolio
rabbit_71
Recommended
Spring 2.x 中文
Spring 2.x 中文
Guo Albert
SCJP ch09
SCJP ch09
r82093403
第9章 t sql程序设计
第9章 t sql程序设计
hanmo1988
Java代码编写的30条建议
Java代码编写的30条建议
yiditushe
希望科技研发部变量命名及编码规范
希望科技研发部变量命名及编码规范
Hongjian Wang
Structs2簡介
Structs2簡介
catonchuang
20151223application of deep learning in basic bio
20151223application of deep learning in basic bio
Charlene Hsuan-Lin Her
E4 8 portfolio
E4 8 portfolio
rabbit_71
Mishu
Mishu
mishupa
abcd
abcd
Narendra Rawat
Toc Toc Introduction
Toc Toc Introduction
Francesco Corazza
TocToc Movement and Crowdsourcing
TocToc Movement and Crowdsourcing
Francesco Corazza
Toc Toc Movement SiCamp Presentation
Toc Toc Movement SiCamp Presentation
Francesco Corazza
Gramática textual, a cohesión
Gramática textual, a cohesión
vicloba
软件设计原则、模式与应用
软件设计原则、模式与应用
yiditushe
应用开发一般工作流程和注意
应用开发一般工作流程和注意
cucued
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.x
Bo-Yi Wu
安卓中的设计模式举例 by hjm1fb
安卓中的设计模式举例 by hjm1fb
Albert Hong
业务需求分析入门
业务需求分析入门
zhoujg
Ibmzf2
Ibmzf2
daoopp
开源应用日志收集系统
开源应用日志收集系统
klandor
达尔文信息云平台
达尔文信息云平台
SmartData
面向模式的软件体系架构
面向模式的软件体系架构
Weijun Zhong
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
zhoujg
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
Poy Chang
面向数据流的软件设计方法
面向数据流的软件设计方法
happyjin2010
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Gelis Wu
软件工程
软件工程
bill0077
OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发
leneli
软件工程 第五章
软件工程 第五章
浒 刘
More Related Content
Viewers also liked
Mishu
Mishu
mishupa
abcd
abcd
Narendra Rawat
Toc Toc Introduction
Toc Toc Introduction
Francesco Corazza
TocToc Movement and Crowdsourcing
TocToc Movement and Crowdsourcing
Francesco Corazza
Toc Toc Movement SiCamp Presentation
Toc Toc Movement SiCamp Presentation
Francesco Corazza
Gramática textual, a cohesión
Gramática textual, a cohesión
vicloba
Viewers also liked
(6)
Mishu
Mishu
abcd
abcd
Toc Toc Introduction
Toc Toc Introduction
TocToc Movement and Crowdsourcing
TocToc Movement and Crowdsourcing
Toc Toc Movement SiCamp Presentation
Toc Toc Movement SiCamp Presentation
Gramática textual, a cohesión
Gramática textual, a cohesión
Similar to 对“新软攀峰”官网项目中面向对象设计原则和包设计原则的分析与修改
软件设计原则、模式与应用
软件设计原则、模式与应用
yiditushe
应用开发一般工作流程和注意
应用开发一般工作流程和注意
cucued
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.x
Bo-Yi Wu
安卓中的设计模式举例 by hjm1fb
安卓中的设计模式举例 by hjm1fb
Albert Hong
业务需求分析入门
业务需求分析入门
zhoujg
Ibmzf2
Ibmzf2
daoopp
开源应用日志收集系统
开源应用日志收集系统
klandor
达尔文信息云平台
达尔文信息云平台
SmartData
面向模式的软件体系架构
面向模式的软件体系架构
Weijun Zhong
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
zhoujg
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
Poy Chang
面向数据流的软件设计方法
面向数据流的软件设计方法
happyjin2010
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Gelis Wu
软件工程
软件工程
bill0077
OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发
leneli
软件工程 第五章
软件工程 第五章
浒 刘
Mvc
Mvc
Yun-tao Chen
广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化
taobao.com
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
drewz lin
網站設計100步
網站設計100步
evercislide
Similar to 对“新软攀峰”官网项目中面向对象设计原则和包设计原则的分析与修改
(20)
软件设计原则、模式与应用
软件设计原则、模式与应用
应用开发一般工作流程和注意
应用开发一般工作流程和注意
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.x
安卓中的设计模式举例 by hjm1fb
安卓中的设计模式举例 by hjm1fb
业务需求分析入门
业务需求分析入门
Ibmzf2
Ibmzf2
开源应用日志收集系统
开源应用日志收集系统
达尔文信息云平台
达尔文信息云平台
面向模式的软件体系架构
面向模式的软件体系架构
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
面向数据流的软件设计方法
面向数据流的软件设计方法
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
软件工程
软件工程
OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发
软件工程 第五章
软件工程 第五章
Mvc
Mvc
广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
網站設計100步
網站設計100步
对“新软攀峰”官网项目中面向对象设计原则和包设计原则的分析与修改
1.
对“新软攀峰”官网项目中
面向对象设计原则 和包设计原则的分析与修改 李昭谕 黄晓雯 王永博
2.
CONTENTS
项目简介 面向对象设计原则 包的设计原则 总结
3.
项目简介 技术架构:
ThinkPHP开发框架 MySQL 符合标准MVC模型 体验地址:http://www.bjtuxrpf.com 测试账号:09301104 密码:123
4.
项目简介 前台:
参赛小组的报名注册、登录 组内成员个人信息管理 项目信息的管理 项目的立项表、中期报告、成果物等的提交与修改 公告的查看 留言 后台: 管理员的登录与登出 公告的发布、修改与删除等
5.
写在分析之前
6.
面向对象的设计原则 单一职责原则(SRP) 就一个类而言,应该只专注于做一件事和仅有一个引起它
变化的原因。
7.
单一职责原则(SRP) Admin
User Public 管理员登陆注 个人资料 组长登陆注销 销 公告发布与修 留言与查看留 项目信息 改 言 成员信息 密码修改
8.
单一职责原则(SRP) Admin
User Public 管理员登陆注 个人资料 组长登陆注销 销 公告发布与修 留言与查看留 项目信息 改 言 成员信息 密码修改
9.
单一职责原则(SRP) 1.分离出Auth类,接管所有登陆操作
LoginoutAction login(User user) logout(User user) 2.将Admin中公告操作并入Publish类 3.分离出Project类,接管User类中的项目信息操作 4.分离出Message类,接管所有留言操作 MessageAction addMsg() delete(id) replyMsg(id) getMsgList() getMsgContent(id) 5.删除无用的Public类
10.
单一职责原则(SRP) Auth
User Publish Project 管理员登陆注 公告发布、查 个人资料 项目信息管理 销 看 公告删除、修 组长登陆注销 成员信息 改 密码修改
11.
面向对象的设计原则 开放封闭原则(OCP) 软件实体应该是可扩展的,而不可修改的。
12.
开放封闭原则(OCP)
Admin Index AdvModel Base abstract Model MyModel Action Public RelationModel Publish ViewModel Empty
13.
面向对象的设计原则 里氏代换原则(LSP) 任何基类可以出现的地方,子类一定可以出现。
14.
里氏代换原则(LSP)
AdvModel Model MyModel RelationModel ViewModel
15.
面向对象的设计原则 依赖倒置原则(DIP) 高层模块不应该依赖低层模块,两者和细节等都应该依赖
于抽象。
16.
依赖倒置原则(DIP)
Auth -User1:Admin -User2:Leader +login() +logout() Admin Leader +login() +login() +logout() +logout()
17.
依赖倒置原则(DIP)
Auth -User: 口 接 +login() +logout() IUser +login() +logout() Admin Leader +login() +login() +logout() +logout()
18.
面向对象的设计原则 接口隔离原则(ISP) ThinkPHP中不存在接口,不进行分析。
19.
包设计原则 重用等价原则(REP) 我们创建包的目的是为了给别人重用,所以重用的粒度就
是发布的粒度。
20.
重用等价原则(REP)
21.
包设计原则 共同重用原则(CRP) 一个包中所有类应该是共同重用的。如果重用了包中的一
个类,那么就重用包中的所有类。 对应于“接口隔离原则”。
22.
共同重用原则(CRP) 同上所述可重用的三个包frontend包、user包和validation 包,体现其内聚性:
frontend包主要是包含负责首页和公告展示功能; user包主要涉及与用户相关的操作功能; validation包只包含对登陆状态功能;
23.
包设计原则 共同封闭原则(CCP) 包中的所有类对于同一类性质的变化应该是共同封闭的。
一个变化若对一个包产生影响,则将对包中的所有类产生 影响,而对于其他的包不造成任何影响。 对应于“单一职责原则”。
24.
共同封闭原则(CCP)
User User Login Handin
25.
包设计原则 无环依赖原则(ADP) 项目本身规模较小,结构简单,不存在环依赖。
26.
包设计原则 稳定依赖原则(SDP) 朝着稳定的方向进行依赖。
对应于“依赖倒置原则”。
27.
稳定依赖原则(SDP)
Validation包不容易改变, Validation 需要进行登陆验证则依赖 Validation包即可,符合稳 定依赖原则。 user
28.
包设计原则 稳定抽象原则(SAP) 稳定的包应该是抽象的。
对应于“依赖倒置原则”。 在此项目中未有具体体现,不做分析。
29.
总结 面向对象的四个特征:继承、多态、抽象和封装。 经验可以作为指导,但要在积累的基础上。
遵循这些原则至关重要,保证工程质量。
30.
谢谢观看