惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Y
Y Combinator Blog
F
Fortinet All Blogs
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
博客园 - Franky
T
The Blog of Author Tim Ferriss
D
DataBreaches.Net
量子位
博客园 - 三生石上(FineUI控件)
I
InfoQ
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
D
Docker
美团技术团队
雷峰网
雷峰网
U
Unit 42
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理

博客园 - bmrxntfj

通过match看rust 聊一聊Rust的enum 折旧记录某旅纵横app分析研究 实现自己的js框架 实现自己的Linq to Sql 统一的仓储接口 ddd官方终于发布了一个完整的示例 浅谈值对象 prototype模式随想 ddd心得 ddd分层感想 小boss随想 论软件的价值 Composite模式随想 DDD书籍介绍 Bmrxntfj.UIMapper界面对象映射 闲来没事,写个老玩意 Strategy与Template Method 规格模式(Specification)
分层随想
bmrxntfj · 2008-11-11 · via 博客园 - bmrxntfj

层的基本原则:上层只能使用同层及其直接的下层。
我们使用层并赋予每一层特定的含义和职责来划分系统。
但是层的基本原则会引发另一些问题
1、比如:有5个层,第5层需要一个功能,这个功能在第1层已经实现,那么则需要在2,3,4层涵盖这个功能(Facade),
这里有两种做法,组合和继承,设计原则告诉我们组合优先于继承,但是这样做如果有10、20、。。。更多个方法,这样就充斥着大量的
Facade方法,这时就不得不放弃组合,选择继承(仿PetShop的项目居多,BLL变成了DAL的Facade,其实三层的划分并不完善,用PetShop说这个有点不合适).
2、有时我们需要下层调用上层,这个我以前也讨论过,PetShop就是这个例子。http://www.cnblogs.com/bmrxntfj/archive/2008/07/08/1237968.html
要解决以上问题,必须做以下几点
1、改变分层基本原则:上层能使用同层及其直接或间接的下层
2、确定以某一层为中心。
3、只能上层调用下层,不允许下层调用上层。