Open Classes and Aspect-Oriented Software Reuse or Weaving-based Software Reuse or Load time-based Software Reuse or Aspect-Oriented Software Composition?
いつものとおり、タイトルの英語が怪しいけど・・・
Open Class と階層拡張
http://www.ncfreak.com/asato/doc/openclass.html
というドキュメントを書いていて気づいた or AspectJ を使い始めていたころから気づいていたことだけど、Open Class (or AspectJ の用語でいえば、Inter-type declaration) は、ソフトウェア再利用性を向上させるのだろうか?
僕の現時点での感想*1は、恐らく YES。でも、色々と問題点もある気がする。感想的には、Open Class (既存のクラスを外から拡張 or 変更する) だけ では、問題点 or 不十分である気がする。どんな問題点かは、具体的にまだわからないけど、そんな気がする。
ちょっとばかし疑問:
- Open class == Aspect-Orientation?
- Extensibility == Reusability?
リソース:
- H. Ossher and P. Tarr. Multi-Dimensional Separation of Concerns and The Hyperspace Approach. Proceedings of the Symposium on Software Architectures and Component Technology: The State of the Art in Software Development. (2000)
http://www.research.ibm.com/hyperspace/Papers/index.htm
- Peri Tarr, Harold Ossher, William Harrison, Stanley M. Sutton, Jr. N Degrees of Separation: Multi-Dimensional Separation of Concerns. ICSE 1999. (1999)
http://citeseer.nj.nec.com/tarr99degrees.html
- Todd Millstein, Mark Reay, and Craig Chambers, Relaxed MultiJava: Balancing Extensibility and Modular Typechecking, the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications. (2003)
http://www.cs.washington.edu/research/projects/cecil/www/pubs/oopsla03.html
- Alexandre Bergel, Stephane Ducasse and Roel Wuyts. Classboxes: A Minimal Module Model Supporting Local Rebinding. In Proceedings of the Joint Modular Languages Conference 2003. (2003)
http://www.iam.unibe.ch/~ducasse/WebPages/Publications.html
- Matthias Zenger. Evolving Software with Extensible Modules. First International Workshop on Unanticipated Software Evolution. (2002)
http://lampwww.epfl.ch/~zenger/research.html
- プログラミング言語 MixJuice
http://staff.aist.go.jp/y-ichisugi/ja/mj/
*1:単なる感想っすよ。僕がこういったところで何よ? みたいな感想っすよ。僕の考えが正しいとかの主張もまったくないっすよ