Results (
Indonesian) 1:
[Copy]Copied!
Solusi menetapkan tanggung jawab untuk informasi kelas expertóthe yang mempunyai informasi yang diperlukan untuk memenuhi tanggung jawab.Masalah apa merupakan prinsip umum menetapkan tanggung jawab untuk objek?Model desain dapat menentukan ratusan atau ribuan kelas perangkat lunak, dan aplikasi mungkin memerlukan ratusan atau ribuan tanggung-jawab digenapi. Selama obyek Desain, ketika interaksi antara objek-objek didefinisikan, kami membuat pilihan tentang penunjukan tanggung jawab untuk perangkat lunak kelas. Dilakukan Yah, sistem cenderung lebih mudah untuk memahami, mempertahankan, dan memperluas, dan ada lebih banyak kesempatan untuk menggunakan kembali komponen dalam aplikasi masa depan.Aplikasi contoh di POS NextGEN, beberapa kelas perlu tahu grand totalpenjualan.Dengan saran ini, pernyataan ini:Siapa yang harus bertanggung jawab untuk mengetahui jumlah total penjualan"?Oleh ahli informasi, kita harus mencari kelas obyek yang informasi yang diperlukan untuk menentukan total.Sekarang kami datang untuk pertanyaan kunci: Apakah kita melihat dalam Domain Model atau desain Model untuk menganalisis kelas yang memiliki informasi yang dibutuhkan? Domain Model menggambarkan konseptual kelas dunia nyata domain; Model desain menggambarkan perangkat lunak kelas.Jawaban:1. jika tidak ada kelas yang relevan dalam Model Desain, lihat pertama. 2. lain, terlihat dalam Domain Model, dan mencoba untuk menggunakan (atau memperluas) perwakilan yang tations untuk mengilhami penciptaan ofcorresponding desain kelas. Sebagai contoh, menganggap kita hanya mulai pekerjaan desain dan tidak ada atau a minimal Model desain. Oleh karena itu, kita melihat Domain Model untuk ahli informasi; mungkin penjualan dunia nyata adalah salah satu. Kemudian, kita tambahkan kelas perangkat lunak untuk desain Model serupa disebut penjualan, dan memberikan tanggung jawab mengetahui totalnya, dinyatakan dengan metode yang bernama getTotal. Pendekatan ini mendukung rendah representasi kesenjangan di mana desain perangkat lunak objek menarik bagi konsep bagaimana domain nyata diatur.Untuk memeriksa hal ini secara rinci, mempertimbangkan Model Domain parsial pada gambar 16.3Informasi apa yang dibutuhkan untuk menentukan jumlah total? Hal ini diperlukan untuk tahu tentang semua contoh SalesLineltem penjualan dan jumlah dari subtotals mereka. Contoh penjualan yang berisi ini; oleh karena itu, oleh pedoman dari ahli informasi, Dijual adalah kelas cocok objek untuk tanggung jawab ini; ini adalah informasi yang ahli untuk pekerjaan.Seperti disebutkan, itu adalah dalam konteks penciptaan interaksi diagram yang pertanyaan-pertanyaan ini tanggung jawab sering timbul. Bayangkan kita mulai bekerja melalui gambar diagram untuk menetapkan tanggung jawab kepada objek. A diagram parsial interaksi dan diagram kelas di 16,4 gambar menggambarkan beberapa keputusan.Kita belum selesai. Informasi apa yang dibutuhkan untuk menentukan item baris subtotal? SalesLineltem.quantity dan ProductSpecification.price yang diperlukan. The SalesLineltem tahu dengan kuantitas dan ProductSpecification yang terkait; oleh karena itu, oleh Expert, SalesLineltem harus menentukan subtotal; itu ahli informasi.Dalam hal interaksi diagram, ini berarti bahwa penjualan perlu mengirim Dapatkan-Subtotal pesan untuk masing-masing SalesLineltems dan jumlah hasil; ini Desain ditampilkan dalam figur 16,5.Untuk memenuhi tanggung jawab mengetahui dan menjawab dengan subtotal, SalesLineltem perlu tahu harga produk.ProductSpecification adalah ahli informasi tentang menjawab harga; oleh karena itu, sebuah pesan harus dikirim untuk meminta harga.Desain ditampilkan dalam gambar 16.6.Dalam kesimpulan, untuk memenuhi tanggung jawab mengetahui dan menjawab dijual Total, tiga tanggung jawab ditugaskan untuk tiga desain kelas objek sebagai berikut.Konteks di mana tanggung jawab ini dianggap dan diputuskan pada sementara menggambar diagram interaksi. Bagian metode diagram kelas kemudian bisa meringkas metode.Prinsip yang tanggung jawab masing-masing ditugaskan adalah informasi Ahli-menempatkannya dengan objek yang memiliki informasi yang dibutuhkan untuk memenuhi hal.Diskusi informasi ahli sering digunakan dalam penugasan tanggung jawab; itu prinsip dasar digunakan terus-menerus inobject desain. Ahli tidak dimaksudkan untuk menjadi jelas atau mewah ide; itu mengungkapkan umum "intuisi" yang melakukan objek hal-hal yang berkaitan dengan informasi yang mereka miliki.Perhatikan bahwa pemenuhan tanggung jawab sering memerlukan informasi yang tersebar di kelas yang berbeda dari objek. Ini berarti bahwa ada banyak "sebagian" informasi ahli yang akan bekerja sama dalam tugas. Misalnya, total penjualan masalah ini akhirnya diperlukan kerjasama dari tiga kelas obyek.melalui pesan untuk berbagi pekerjaan.Ahli biasanya mengarah ke desain sebuah objek perangkat lunak Apakah operasi-operasi tersebut yang biasanya dilakukan dengan benda nyata hal ini mewakili; Peter Goad menyebutnya "Melakukan itu sendiri" strategi [Coad95]. Sebagai contoh, dalam nyata dunia, tanpa menggunakan alat bantu elektro-mekanis, penjualan tidak memberitahu Anda yang Total; ini adalah hal yang mati. Seseorang menghitung jumlah penjualan. Tetapi dalam Tanah perangkat lunak berorientasi objek, semua perangkat lunak objek "hidup" atau "animasi," dan mereka dapat mengambil tanggung jawab dan melakukan hal-hal. Pada dasarnya, mereka melakukan hal-hal terkait dengan informasi yang mereka tahu. Saya sebut ini "animasi" prinsip dalam objek desain; It's like being di kartun dimana semuanya masih hidup.Patternólike informasi ahli banyak hal dalam objek technologyóhas analogi dunia nyata. Kami biasanya memberikan tanggung jawab untuk individu yang memiliki informasi yang diperlukan untuk memenuhi tugas. Misalnya, dalam bisnis, yang harus bertanggung jawab untuk menciptakan sebuah pernyataan keuntungan dan kerugian? Orang yang memiliki akses ke semua informasi yang diperlukan untuk membuat itóperhaps chief financial officer. Dan hanya sebagai perangkat lunak objek berkolaborasi karena informasi yang tersebar di sekitar, jadi dengan orang-orang. Pejabat keuangan utama perusahaan mungkin meminta akuntan untuk menghasilkan laporan kredit dan debet.Kontraindikasi sana adalah situasi yang mana solusi yang disarankan oleh ahli tidak diinginkan, biasanya karena masalah di kopling dan kohesi (prinsip-prinsip ini dibahas kemudian dalam bab ini).Sebagai contoh, siapa yang harus bertanggung jawab untuk menyelamatkan penjualan dalam database? Tentu saja, banyak informasi yang akan disimpan adalah di objek dijual, dan dengan demikian oleh ahli argumen dapat dibuat untuk menempatkan tanggung jawab di kelas penjualan. Dan kepanjangan secara logik bagi keputusan ini adalah bahwa masing-masing kelas memiliki layanan sendiri untuk menyelamatkan itu sendiri dalam database. Tetapi hal ini menyebabkan masalah dalam persatuan, coupling, dan duplikasi. Misalnya, kelas dijual sekarang harus berisi logika yang berhubungan dengan penanganan database, seperti berhubungan dengan SQL dan JDBC (Jawa Database konektivitas). Kelas tidak lagi terfokus pada hanya logika aplikasi murni dari "menjadi penjualan;" itu sekarang memiliki tanggung jawab, yang menurunkan yang kohesi jenis lain. Kelas harus digabungkan ke layanan teknis database subsistem lain, seperti Layanan JDBC, daripada hanya digabungkan ke benda-benda lain dalam lapisan domain perangkat lunak objek, yang menimbulkan coupling nya. Dan kemungkinan database tersebut serupa logic would be duplicated in many persistent classes.All these problems indicate violation of a basic architectural principle: design for a separation of major system concerns. Keep application logic in one place (such as the domain software objects), keep database logic in another place (such as a separate persistence services subsystem), and so forth, rather than intermingling different system concerns in the same component.Supporting a separation of major concerns improves coupling and cohesion in a design. Thus, even though by Expert there could be some justification to put the responsibility for database services in the Sale class, for other reasons (usually cohesion and coupling), it is a poor design.ï Information encapsulation is maintained, since objects use their own infor mation to fulfill tasks. This usually supports low coupling, which leads to more robust and maintainable systems. (Low Coupling is also a GRASP pat tern that is discussed in a following section). ï Behavior is distributed across the classes that have the required informa tion, thus encouraging more cohesive "lightweight" class definitions that are easier to understand and maintain. High cohesion is usually supported (another pattern discussed later). ï Low Coupling ï High Cohesion Also Known As; "Place responsibilities with data," "That which knows, does," "Do It Myself," "Put Similar To Services with the Attributes They Work On.
Being translated, please wait..