gembin

          OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

          HBase, Hadoop, ZooKeeper, Cassandra

          Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

          There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

          About Me

           

          AS3-DI-Metadata

          What a Metamess

          Spring Actionscript, Dawn, SmartyPants, Swiz, Spicelib (used by Parsley) and SwiftSuspenders (used by Robotlegs) perform Dependency Injection.

          Moreover they can all perform automatic DI by parsing class metadata. It would be grand if the common DI related metadata tags could be standardised. That way we really could write code that is decoupled from any particular framework.

          Injection by Type

          Dawn, Swiz, Spicelib, SwiftSuspenders, SmartyPants: [Inject] (above property, setter or method)
          Spring AS: [Autowire] (above property, setter or method)

          Most popular

          [Inject] by 5

          Notes

          [Inject] is clear and simple and used by almost all of the libraries. It also directly correlates to @Inject from the JSR-330 Dependency Injection for Java specification. Let’s use it.

          Injection by Name/Id

          Dawn, SwiftSuspenders, SmartyPants: [Inject(name=“SomeName”)] (above property, setter or method)
          Swiz: [Inject(source=“SomeName”)] (above property, setter or method)
          Spicelib: [Inject(id=“SomeName”)] (above property, setter or method)
          Spring AS: [Autowired(name=“SomeName”)] (above property, setter or method)

          Most popular

          [Inject(name=“SomeName”)] by 3

          Notes

          Since you can define default attributes best practice could be to leave out the attribute: [Inject(“SomeName”)]

          Constructor Injection:

          SwiftSuspenders: [Inject] (above class)
          Spicelib: [InjectConstructor] (above class)
          Swiz, Spring AS, Dawn: ?

          Most popular

          ?

          Notes

          I don’t see the need for an extra tag ([InjectConstructor]) when we could simply use [Inject].

          Object Lifecycle – Post Injection:

          Dawn, SwiftSuspenders, SmartyPants, Swiz: [PostConstruct] (above method)
          Spicelib: [Init] (above method)

          Most popular

          [PostConstruct] by 4

          Notes

          @PostConstruct is used in Java for the same purpose. Let’s use the most popular, established one.

          Object Lifecycle – Teardown:

          SwiftSuspenders, SmartyPants, Dawn: none?
          Swiz: [PreDestroy] (above method)
          Spicelib: [Destroy] (above method)

          Most popular

          Notes

          @PreDestroy is used in Java for the same purpose. Let’s use the most familiar, established one.

          Factory/Provider:

          SwiftSuspenders, SmartyPants, Swiz: none?
          Dawn: [Provider] (above method)
          Spicelib: [Factory] (above method)

          posted on 2010-11-12 14:44 gembin 閱讀(551) 評論(0)  編輯  收藏 所屬分類: ActionScript3

          導航

          統計

          常用鏈接

          留言簿(6)

          隨筆分類(440)

          隨筆檔案(378)

          文章檔案(6)

          新聞檔案(1)

          相冊

          收藏夾(9)

          Adobe

          Android

          AS3

          Blog-Links

          Build

          Design Pattern

          Eclipse

          Favorite Links

          Flickr

          Game Dev

          HBase

          Identity Management

          IT resources

          JEE

          Language

          OpenID

          OSGi

          SOA

          Version Control

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          free counters
          主站蜘蛛池模板: 牡丹江市| 兴义市| 正蓝旗| 和林格尔县| 重庆市| 邢台县| 广河县| 偏关县| 瓦房店市| 潼关县| 额济纳旗| 绥滨县| 玉山县| 江北区| 社旗县| 章丘市| 绥中县| 万荣县| 格尔木市| 鄯善县| 墨脱县| 榆中县| 昭平县| 全椒县| 苏州市| 永靖县| 兴化市| 开阳县| 积石山| 抚远县| 营山县| 车致| 常州市| 东莞市| 巴青县| 饶阳县| 通许县| 勐海县| 仁布县| 墨脱县| 安龙县|