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 閱讀(530) 評論(0)  編輯  收藏 所屬分類: ActionScript3

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(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
          主站蜘蛛池模板: 深水埗区| 介休市| 南溪县| 乳源| 安图县| 扎鲁特旗| 嘉荫县| 隆昌县| 青海省| 溧阳市| 惠安县| 吴川市| 浦北县| 德钦县| 得荣县| 久治县| 盐边县| 凯里市| 鹿邑县| 盐源县| 临澧县| 修水县| 南陵县| 台南市| 化隆| 沙田区| 子洲县| 兰考县| 宁武县| 凤山县| 阜阳市| 伊宁市| 武宣县| 阿坝| 东明县| 赫章县| 尚义县| 平湖市| 揭西县| 福泉市| 思茅市|