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
          主站蜘蛛池模板: 田林县| 冷水江市| 蓬安县| 宁化县| 香河县| 大港区| 新化县| 美姑县| 南皮县| 大田县| 定安县| 鲁甸县| 高邑县| 民丰县| 库尔勒市| 盐山县| 布尔津县| 墨玉县| 泾阳县| 鹤庆县| 五指山市| 宁乡县| 达孜县| 丰顺县| 乌兰察布市| 鹤庆县| 商水县| 宁化县| 西盟| 三门峡市| 永济市| 金川县| 张家港市| 临沧市| 平山县| 庆安县| 临武县| 舟曲县| 红桥区| 翼城县| 客服|