软件设计美学之道─软件的美丽元素.pdfVIP

软件设计美学之道─软件的美丽元素.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件设计美学之道─软件的美丽元素 世界上大大小小的事件、每个人的想法、做法,只要不是具象的事物,就都是抽象的, 而软件设计的思维亦是如此。 在软件设计的领域中,对象导向的设计方式是个抽象的分析思考法,很适合在虚拟世界 里面表达出真实世界的需求。 虽然对象导向的技术已经行之有年了,但是真正了解其观念,并且能将其思维放到实际 设计与实作上的人并不多,可能是因为受到现实环境的影响。 以 Java来说,笔者就看过许多使用 Java 写出 C 程序风格的例子,以应用面来看,这样 实在谈不上有设计思维,只能说是透过程序撰写一行行地列出工作而已。然而也许是因为这 样的观念不清,导致利用 Java 开发的系统效率不张或者幽灵问题不断,而让人误解 Java 系 统的好坏。 对象导向的关键哲理-抽象 对象导向是一种很有趣的分析「哲学」,它试图从人们对真实世界的看法及感受来解释属 于虚拟世界的软件。从分析问题领域,进而转成相对应的程序代码,都是在模拟真实世界里 的自然过程。 真实世界的事物是瞬息万变的,而软件开发也是如此,唯一不变的,就是恒变的需求。 因而,「抽象」则是描述「瞬息万变」的一个重要并且安全的方法。 抽象的观念也是大部分的人在学习或运用对象导向观念时,比较容易遇到的瓶颈。所谓 的抽象,简单来说,就是「萃取」出的概念,而且和实作无关,因为真实问题背后所隐含的 意义,往往无法从直接的实作中得知。抽象的焦点是事物的本质特性,不同的观点可以对同 一事物抽离出不同的元素来,若是将抽象结果对映到真实世界中,有可能是一个具体的东西, 也可能是一个看不见的概念。 抽象有助概念与实作的再利用 想象一个简单的例子,在人声鼎沸的世贸计算机展里,你能够抽象出什么呢?是某计算机 公司的摊位、辣妹跳舞、某个品牌的计算机,还是拆解成摊位、辣妹、表演、消费者、产品、 销售、交易?若是后者,那么将这些元素套用到家具展上,其实也没问题。因此,抽象有助于 「概念的再利用」,同样也有助于「实作的再利用」及稳定。 如果我们要设计一个展览馆的软件平台,起码,当计算机展要改成家具展时,只要重新 实作产品内容,不用重新设计整个平台,因为交易模式及展埸运作模式都是类似的。 大家在此应先建立一个观念,对象导向的分析方法是由特殊到一般,由实体到抽象。抽 象的观念还可以在经过一般化(generalization)或者特殊化 specialization)的分析后,衍生 出阶层的结构,这一层一层的抽象结构,可以像一层一层的防火墙一样,挡住一级一级需求 变异的风浪。 以黑客任务说明对象导向 对对象导向技术有初步认识人都会读到不少技术名词,例如接口(Interface)、讯息 1 (Message)、类别(Class)、抽象(Abstraction)、具象(Concrete)或者 Pattern、 IoC(InversionofControl)、DependencyInjection、MVC(ModelViewController)等等,这些 名词都和对象导向的设计思维习习相关。我很喜欢的一部电影──黑客任务(Matrix),可以 套用来说明这些名词的观念及对象导向设计的思维。 在黑客任务的电影情节里,人类被所谓的「母体」控制在一个虚拟的计算机世界里,在 那个虚拟世界里面的所有事物,例如行道树、食物、味觉,甚至物理或化学反应,不管是看 得到、感觉得到还是所谓的自然定律,都是计算机程序所创造出来的,而真实的人类却浑然 不知地被「饲养」在一座座充满连接管线的生态槽里。 看完电影后我不禁思考:如果我是那母体(Matrix)的架构师(architect),该怎么设计那 套系统? 我大概会利用复合技术(composition)的方法,再配合连结器(adapter)机制和真实世界 生态槽里收集人体各项模拟讯号的生物接口连接,再转化成数字讯号,然后将人类的类别 (class)具现(instantiate)到数字世界里时,利用 dependencyinjection的方式,将经转化 的数字讯号注入人类实例(instance),并和那里的所有事物建立对象关系,然后人类就可以 在那个世界里生活着。 这么酷的想象,透过对象导向的技术来形容似乎就不难理解,它

文档评论(0)

ccccccxx + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体临沂冉通信息技术有限公司
IP属地山东
统一社会信用代码/组织机构代码
91371300MA9576790T

1亿VIP精品文档

相关文档