翻訳と辞書
Words near each other
・ Aspect (computer programming)
・ Aspect (Dungeons & Dragons)
・ Aspect (geography)
・ Aspect (religion)
・ Aspect (trade union)
・ Aspect Co.
・ Aspect Enterprise Solutions
・ Aspect magazine
・ Aspect of music
・ Aspect ratio
・ Aspect ratio (aeronautics)
・ Aspect ratio (disambiguation)
・ Aspect ratio (image)
・ Aspect Television
・ Aspect weaver
Aspect-oriented programming
・ Aspect-oriented software development
・ AspectC++
・ Aspectism
・ AspectJ
・ Aspects (band)
・ Aspects of Anglo-Saxon Magic
・ Aspects of Christian meditation
・ Aspects of Love
・ Aspects of Love (novel)
・ Aspects of Physics
・ Aspects of Scientific Explanation and other Essays in the Philosophy of Science
・ Aspects of the Novel
・ Aspects of the Sensual World
・ Aspects of the Theory of Syntax


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Aspect-oriented programming : ウィキペディア英語版
Aspect-oriented programming

In computing, aspect-oriented programming (AOP) is a patented〔 programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. It does so by adding additional behavior to existing code (an advice) ''without'' modifying the code itself, instead separately specifying which code is modified via a "pointcut" specification, such as "log all function calls when the function's name begins with 'set'". This allows behaviors that are not central to the business logic (such as logging) to be added to a program without cluttering the code core to the functionality. AOP forms a basis for aspect-oriented software development.
AOP includes programming methods and tools that support the modularization of concerns at the level of the source code, while "aspect-oriented software development" refers to a whole engineering discipline.
Aspect-oriented programming entails breaking down program logic into distinct parts (so-called ''concerns'', cohesive areas of functionality). Nearly all programming paradigms support some level of grouping and encapsulation of concerns into separate, independent entities by providing abstractions (e.g., functions, procedures, modules, classes, methods) that can be used for implementing, abstracting and composing these concerns. Some concerns "cut across" multiple abstractions in a program, and defy these forms of implementation. These concerns are called ''cross-cutting concerns'' or horizontal concerns.
Logging exemplifies a crosscutting concern because a logging strategy necessarily affects every logged part of the system. Logging thereby ''crosscuts'' all logged classes and methods.
All AOP implementations have some crosscutting expressions that encapsulate each concern in one place. The difference between implementations lies in the power, safety, and usability of the constructs provided. For example, interceptors that specify the methods to intercept express a limited form of crosscutting, without much support for type-safety or debugging. AspectJ has a number of such expressions and encapsulates them in a special class, an aspect. For example, an aspect can alter the behavior of the base code (the non-aspect part of a program) by applying advice (additional behavior) at various join points (points in a program) specified in a quantification or query called a pointcut (that detects whether a given join point matches). An aspect can also make binary-compatible structural changes to other classes, like adding members or parents.
==History==
AOP has several direct antecedents A1 and A2: reflection and metaobject protocols, subject-oriented programming, Composition Filters and Adaptive Programming.〔"Adaptive Object Oriented Programming: The Demeter Approach with Propagation Patterns" ''Karl Liebherr'' 1996 ISBN 0-534-94602-X presents a well-worked version of essentially the same thing (Lieberherr subsequently recognized this and reframed his approach).〕
Gregor Kiczales and colleagues at Xerox PARC developed the explicit concept of AOP, and followed this with the AspectJ AOP extension to Java. IBM's research team pursued a tool approach over a language design approach and in 2001 proposed Hyper/J and the Concern Manipulation Environment, which have not seen wide usage. The examples in this article use AspectJ as it is the most widely known AOP language.
The Microsoft Transaction Server is considered to be the first major application of AOP followed by Enterprise JavaBeans.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Aspect-oriented programming」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.