zoukankan      html  css  js  c++  java
  • 《对象设计》学习

     

    名字的内涵

    好的名字能够促进设计,根据对象的名字可以推断出它的角色和责任。

    一些好的方法:

    1. 修饰通用名称:为通用概念的某一特例进行命名的方法之一是在该通用名称上添加对特性的描述。如:一个Calendar类代表了某个特定点的时期和时间,而GregorianCalendar扩展了Calendar类。按此约定我们还可以创造出ChineseCalendar类。

    2. 名字中只能包含将最有启迪性和最突出的因素:任何描述的趋势都是将名字起的越来越冗长。不要将对象的每一个区别性都表现的名字里。应该隐藏那些会变动或不应让其他对象知道的细节。如一个“精确到两毫秒误差的毫秒定时器(MillisecondTimerAccurateWithinPlusOrMinusTwoMilliseconds),还是“定时器(Timer)”就足够了呢?除非细节不会变化或对其他对象的影响是公开的,否则就不应该把它们暴露出来。

    3. 给服务提供者以“worker”式命名:英文命名的一种习俗是用“er”后缀代表服务者。如“工作者(woker)”、“行动者(movers)”等,如果你发现一个类似这样的对象的话,那么该名字就会这个对象提供很强的暗示性。如果这样不怎么正确的话要可以给这个名字加上“service”如:TransactionServiceNamingService等。

    4. 为那些名字暗示了广泛责任的对象寻找辅助对象:如果碰到一个暗示了一大堆责任的名字,那么检查一下该对象命名的正确性,很可能它应该关注的更少些,或是你找到了需要扩展的通用对象。

    5. 选择不限制行为的名字:不要选择将对象行为限制于狭小的范围的名字,这样会限制对象的潜能。如有选择,尽可能地挑选一个让对象能承担更多责任的名字。

    6. 选择一个适合对象生存期的名字:如一个负责完成应用程序初始化并且实时监控着“关闭”或“重新初始化”这样的外部事件信号的对象,将其命名为ApplicationCoordinator就比ApplicationInitializer要好的多。

    7. 选择一个适合当前设计背景的名字:当选名字时,挑选适合当前设计环境的名字,否则对象听起来可能会有点怪。比如在一个会计应用中听起来合乎情理的名字在工程应用中可能会有点刺耳。

    8. 不要重载名字:如果在同一应用中,同时存在着两种本质不同的同名对象,那么这将不是良好的设计。有语言支持不同数据包的类能有一样的名字。在同一应用中同时并存的对象应该被赠予不同的名字,不要重载名字。

    9. 通过添加形容词来消除名字冲突:有时最适合的名字已经被选择。而仍有剩余的对象。通过给名字添加一描述性短语,来得到一个独立的名字。

    10.选择易容被理解的对象:名字不应该太简短,不要为了少打几个字而简化名字。如:“Acct”这样的名字就过于隐晦,而“Account”就好很多了。

     

    ----摘录于《对象设计》

        

  • 相关阅读:
    谢谢博客-园,让我不再有开源AYUI的想法
    [ay原创作品]用wpf写了个模仿36Kr网站登录背景的效果
    [AY技术分享]WPF AYUI的高大上日历代码
    [C#] AY.WPF-图形编程-高中生为起点-研究报告1
    [Aaronyang]谈谈2015年AY对WPF全面技术总结40多篇WPF,炫到没朋友的AYUI来了
    C#人爱学不学9[C#5.0异步实例+WPF自己的MVVM Async应用 1/12]
    Ay.Framework.WPF 2.0建立项目到底有多快
    [aaronyang]WPF4.5
    Hystrix是什么
    通俗理解ZooKeeper是如何保证数据一致性的
  • 原文地址:https://www.cnblogs.com/universewindy/p/1401802.html
Copyright © 2011-2022 走看看