close

AspectJ

Navigasyona git Aramaya git

AspectJ , Xerox PARC'ta oluşturulan Java dilinin bir uzantısı olarak oluşturulmuş en -boy odaklı bir programlama dilidir . Bir AspectJ derleyicisi, görünüş nosyonunu sanal makine koduna iter, böylece bir ilişki nosyonu uygular. Kaplamaların kendileri, bir Java dosyası oluşturularak genişletilmiş Java ile yazılır veya Java derleyicileri tarafından oluşturulanla uyumlu makine koduyla derlenir.

AspectJ özellikleri

  • Yönler : Bunlar kodun "sarıcıları" olarak tanımlanır. Java sınıflarına benziyorlar.
  • Joinpoint : Java kodunda, bir yönün sınıfları engelleyebileceği noktalar.
  • Pointcuts - Mantıksal olarak birleştirilmiş birleşim noktası grupları.
  • Tavsiyeler : Bunlar, pointcut tarafından temsil edilen tüm birleşim noktalarına yeni bir davranış enjekte eden, pointcut'larla ilişkili kod parçalarıdır.
  • Intertype-üye bildirimleri : bir yönün, birden çok sınıf için uygulanan alanları ve yöntemleri tam olarak tanımlamasına izin verir.

Avantajlar ve dezavantajlar

AspectJ dilinin avantajlarından bazıları şunlardır:

  • AspectJ, çapraz referansları modellemenize olanak tanır, böylece OOP olanaklarını genişletir.
  • Modülerliğin avantajlarını sunmak için tasarlanmış özlü ve açık bir dildir.

Öte yandan, AspectJ dili aşağıdaki dezavantajları sunar:

  • Uygun bir araç olmadan, programcı tüm sistemin işlevselliğini anlayamaz. Örneğin, tipler arası üyeler görülmeyebilir ve asla kullanılmayabilir.
  • Geliştirme aşamasında modelleme, planlama ve kontrol çok daha önemlidir. Yönlerin tasarımcılar tarafından tanınması gerekir, bu da programcıların işini kolaylaştırır.
  • Yönler kötüye kullanılabilir. Bir programcı, geliştirmenin herhangi bir aşamasında yanlış işlevsellik uygulayabilir ve geniş bir sistem yelpazesini etkileyebilir. POA'nın gücünü anlamak zor olabilir.

AspectJ için tasarlanmış derleyiciler

En az iki AspectJ derleyicisi vardır:

  • Eclipse projesi tarafından desteklenen araçların ajc parçası ve
  • Bir derleyici, optimize edici ve genişletilebilir olan abc , enspectbench.org'da üretilmiştir.

Dış bağlantılar