连载:面向对象葵花宝典:思想、技巧与实践(25) - 类模型

简介:

面向对象设计和弹吉他差不多,有很多成熟的理论和技巧,学会弹吉他并不难,你只需要应用这些理论和技巧即可!


【师傅领进门,修行在个人】

“类模型”是整个面向对象设计模型的核心,是面向对象设计阶段的主要输出,也是设计师们最能够发挥自己才能的地方。

 

虽然“类模型”如此重要,但面向对象设计技术经过几十年的发展后,目前已经形成了很成熟的一套体系,因此真正在进行“类模型”设计的时候,其实难度并不高,这也是多亏了众多前辈们的无私贡献,才能使得我们这些芸芸众生也能轻松掌握这些原本带有艺术色彩的技能。

 

不过话又说回来了,入门容易精通难,“类模型”的设计也是如此,虽然有前辈们各种各样的思想结晶指导着我们,但毕竟如何理解、如何应用这些思想结晶,还是要看个人的领悟力和把握力。就像同样的《葵花宝典》,岳不群看了创立了气宗,蔡子峰看了创立了剑宗,渡元禅师听了后悟出了辟邪剑法,东方不败看了竟然练出了绣花针绝技!所以接下来的内容,也只是“师父领进门,修行在个人”,如果希望做出优秀的设计,更多还是依靠个人的领悟和实践!

 

【设计的魔法崇拜】

面向对象类的设计很多时候都蒙上了一层神秘的面纱。一个常见的场景是:“设计师”拿到需求后,经过一段时间的设计,感觉就像变戏法一样,然后就拿出了一个类模型。普通的开发人员看到这样的类模型,很难想象如何从需求才能够得到了这些类,由于大部分公司的设计人员确实也都是公司里面的牛人,因此大家就自然而然地认为这是水平和创造力的表现,心底不由得产生由衷的赞叹:“牛逼啊!”

 

我称这种现象为设计的“魔法崇拜”,具体表现就是认为设计是一种魔法,做设计的人是魔法师,只有牛逼的人才能够做设计。

 

但这种认识并不准确,就像我们前面提到的,面向对象领域已经发展了几十年,各种思想、理论都已经基本成熟,绝大部分人在做设计的时候,都不可能有什么天才的创新或者天才的灵感,而只是这些已经成熟的思想和理论的应用而已

 

之所以现在还会出现这种现象,主要原因还是在于各种思想、理论、方法都是针对具体问题的分析或者总结,但并没有谁明确的将这些东东形成一套完整的面向对象设计体系。

 

可能很多人都有这种感觉:面向对象我也懂,设计模式我也知道,设计原则我也明白,但真的要进行设计的时候,就不知道如何下手了,比如说:

对象从哪里来?

什么时候用设计模式?

如何判断设计是否正确?

什么样的设计才是优秀的设计?

。。。。。。。。。。。

 

正因为存在这样的原因,我们自然会对那些能够设计出完整的类模型的设计师们刮目相看了。

 

其实面向对象设计并不是什么高深的技术,也不需要天才的创新,更不需要变魔法,而是有章可循的,只要我们按照一定的步骤,一步一个脚印,不断精益求精,就能够完成面向对象的设计。

 

但正如前面提到的一样,面向对象设计更多的时候是一门艺术。虽然我们按照一定的步骤能够完成面向对象的设计,但在这些步骤实施的过程中,如何应用相关技术,如何做出设计选择等,更多时候是带有艺术色彩的。就像很多人都会弹吉他,但真正的吉他大师弹出来的感觉,肯定和一个普通人弹的不一样。


接下来我们将会分几个小节讲述如何进行面向对象的类设计:

第一步(照猫画虎):领域类映射 --- 告诉你类从哪里来

第二步(精雕细琢):应用设计原则和设计模式   ---告诉你如何设计“好”类

第三步(照本宣科):拆分辅助类   ---告诉你如何和你的开发框架结合起来


================================================ 
转载请注明出处:http://blog.csdn.net/yunhua_lee/article/details/23456581
================================================ 


相关文章
|
4月前
|
存储 机器学习/深度学习 Java
Java 大视界 -- Java 大数据在智慧水利水资源调度与水情预测中的应用创新(180)
本文探讨了Java大数据技术在智慧水利中的创新应用,重点分析了其在水资源调度与水情预测中的关键技术与实践案例。通过大数据存储、实时处理与深度学习模型,Java有效提升了水利数据管理效率与水情预测准确性,助力传统水利向智能化转型。
|
4月前
|
Java 数据库连接 数据库
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
本文全面总结了Java核心知识点,涵盖基础语法、面向对象、集合框架、并发编程、网络编程及主流框架如Spring生态、MyBatis等,结合JVM原理与性能优化技巧,并通过一个学生信息管理系统的实战案例,帮助你快速掌握Java开发技能,适合Java学习与面试准备。
228 2
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
|
3月前
|
Ubuntu Linux 图形学
Ubuntu 25.04:全新升级与未来展望
此外,Ubuntu 25.04还同步发布了众多官方衍生版本和支持周期,如Kubuntu、Xubuntu、Ubuntu MATE、Budgie、Unity、Studio、Cinnamon和Kylin等。用户可以从Ubuntu官网轻松下载这些版本。值得注意的是,作为一个非LTS版本,支持周期为9个月,预计将于2026年1月结束。因此,对于那些需要稳定性和长期支持的用户来说,Ubuntu 24.04 LTS仍然是一个推荐的选择。
|
4月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
4月前
|
存储 安全 API
亚马逊SP-API入门:海外电商接口调用与国内平台的差异化
亚马逊 SP-API 与国内电商 API 在技术架构、安全机制及开发流程上差异显著。本文对比京东、淘宝等平台,分析接口设计、地域适配、权限管理等核心差异,并结合实战经验提供开发建议,助力开发者高效接入 SP-API,实现全球电商业务拓展。
|
8月前
|
存储 数据采集 数据管理
《深度揭秘:数据库表结构设计的艺术与科学》
在数字化时代,数据库是企业数据管理的核心,而表结构设计直接影响系统性能与稳定性。设计合理的数据库表结构需从六大方面入手:精准把握业务需求,确保设计贴合实际;遵循规范化原则,减少冗余并维护一致性;审慎选择数据类型,平衡存储与性能;确保数据完整性,保障数据质量;优化查询性能,提升响应速度;注重前瞻性与灵活性,适应未来变化。这是一项融合业务理解、技术考量与实践经验的综合性任务,对构建高效、稳定、可扩展的数据库系统至关重要。
283 25
|
人工智能 机器人
朱玉可团队新作:看一眼就能模仿,大模型让机器人轻松学会撒盐
朱玉可团队来自UT Austin和NVIDIA Research,提出了一种名为OKAMI的新方法,通过模仿人类行为视频,使机器人能快速学会操作技能,如撒盐、放玩具等。OKAMI分为参考计划生成和对象感知重定位两阶段,显著提高了机器人的操作精度和适应能力,减少了传统方法所需的大量示范和训练时间。
214 3
|
供应链 安全 芯片
台积电7nm芯片断供影响分析:中国大陆半导体产业的挑战与机遇
近日,有关台积电可能断供中国大陆7nm芯片的消息引发了业界的广泛关注。这一事件不仅关系到全球半导体供应链的稳定性,也对中国大陆半导体产业的发展提出了新的挑战。本文将探讨这一事件背后的原因、可能的影响以及中国大陆半导体产业的应对策略。
668 0
|
编解码 Android开发
【Flutter】Android、Flutter 折叠屏适配 ( 展开大屏 | 折叠主屏 | 折叠副屏 | 静态展示 | 动态热切换适配 | 拉伸布局 | X 轴自适应适配 | 布局重构 )(一)
【Flutter】Android、Flutter 折叠屏适配 ( 展开大屏 | 折叠主屏 | 折叠副屏 | 静态展示 | 动态热切换适配 | 拉伸布局 | X 轴自适应适配 | 布局重构 )(一)
780 0
【Flutter】Android、Flutter 折叠屏适配 ( 展开大屏 | 折叠主屏 | 折叠副屏 | 静态展示 | 动态热切换适配 | 拉伸布局 | X 轴自适应适配 | 布局重构 )(一)