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

推荐订阅源

F
Fortinet All Blogs
aimingoo的专栏
aimingoo的专栏
V
Visual Studio Blog
罗磊的独立博客
爱范儿
爱范儿
J
Java Code Geeks
博客园 - 司徒正美
N
Netflix TechBlog - Medium
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
小众软件
小众软件
Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
博客园 - 聂微东
云风的 BLOG
云风的 BLOG
WordPress大学
WordPress大学
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Jina AI
Jina AI
Y
Y Combinator Blog
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
Vercel News
Vercel News

博客园 - 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、只能上层调用下层,不允许下层调用上层。