taken from wikipedia =>

In computer science, cross-cutting concerns are aspects of a program which 
affect (crosscut) other concerns. These concerns often cannot be cleanly 
decomposed from the rest of the system in both the design and implementation, 
and result in either scattering or tangling of the program, or both.

For instance, if writing an application for handling medical records, the 
bookkeeping and indexing of such records is a core concern, while logging a 
history of changes to the record database or user database, or an 
authentication system, would be cross-cutting concerns since they touch more 
parts of the program.

=======

katanya.. cross-cutting concerns itu adalah aspek di program yg mempengaruhi 
concern2 yg lain. dan seringkali sulit untuk dipisahkan dari sistem baik dalam 
level design dan implementasi, jadi code2 yg memotong itu ada atau diselipkan 
di program yg sebenarnya gak ada nyambungnya sama urusan yg motong tadi.

contohnya kita buat aplikasi untuk medical records, bookeeping dan indexing itu 
core concern, tapi klo audit, logging perubahan record atau user, authentikasi 
itu cross-cuting concern karena dia nyentuh hampir di setiap bagian2 program yg 
gak ada hubungannya sama sekali


class Patient {
    public void attendMedicalCheckUp(Date date) {
             // log.info("patient bla bla attende meeting bla bla "); => cross 
cuting
             // do core logic
    }

    public void suggestToGoHome() {
        // log.info("suggestToGoHome") => cross cuting
        // do core logic
    }

    
}

class Doctor {

    public void assignToTakeCareOf(Patient ) {
        // log.info("attend"); => cross cuting
        // do core logic        
    }
}

seperti yg kita lihat. logging itu ada dimana2... dan gak ada nyambungnya 
dengan urusan core logic. jadi kita harus insert logging statement dimana2 
sebelum method di invoke atau sesudah, etc. statement2 itu jorok2 in code. dan 
bikin sulit ngebaca code nya. alangkah baiknya klo code2 logging itu di 
pindahin di suatu tempat sehingga body method yg mengandung core logic dari 
domain tersebut bersih. nah.. code yg mengandung logging itu kemudian diset 
sedemikian rupa sehingga dia akan dieksekusi pada waktu sebelum atau sesudah, 
etc sesuai dengan kebutuhan. jadi code kita tetap bersih dari logging yg 
ngotorin itu tetapi kita tetap mendapatkan logging requirement yg diinginkan. 
dan dapat direuse untuk kebutuhan yg lain.






________________________________
Dari: Adelwin Handoyo <[email protected]>
Kepada: JUG-Indonesia <[email protected]>
Terkirim: Sel, 2 Maret, 2010 15:49:16
Judul: Re: [JUG-Indonesia] Tanya AOP

  
Sesuatu yang di lakukan secara orthogonal..
Kalo gitu ngerti kagak?


Adelwin Handoyo
- adel...@gmail. com -
Sent from my Mac


________________________________
From: dir dir <sikerasakti@ gmail.com>
Reply-To: JUG-Indonesia <jug-indonesia@ yahoogroups. com>
Date: Tue, 2 Mar 2010 09:30:37 +0700
To: JUG-Indonesia <jug-indonesia@ yahoogroups. com>
Subject: Re: [JUG-Indonesia] Tanya AOP













>
>
>
>
>>
>>
>>
>>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
 


      Berselancar lebih cepat. Internet Explorer 8 yang dioptimalkan untuk 
Yahoo! otomatis membuka 2 halaman favorit Anda setiap kali Anda membuka 
browser. Dapatkan IE8 di sini! 
http://downloads.yahoo.com/id/internetexplorer

Kirim email ke