2011-02-16 16 views
7

Ben Bir TCP/IP soketi üzerinden bir sunucuya bir istemciden bir komut geçirmek için komut desen kullanıyorum dönün. Sunucu komut nesnesini alır, seriyi seri hale getirir ve komut nesnesinde execute() öğesini çağırır. Ancak, arayana soket üzerinden bir değer iletmem gerekiyor. Komut düzeni buna izin veriyor mu? Değilse, etrafta bir iş var mı? Ben wikipedia üzerinde ışık anahtarı örneğine baktım, bu harika, ama dönüş değeri yok. Herhangi bir tavsiye büyük beğeni topluyor.Komut Desen - Bir değer

+0

Arayan kişiye neden bir değer yollamanız gerektiğini açıklayabilir misiniz? Belki daha fazla bağlam yardımcı olacaktır. – Ocelot20

+1

Ben desenlere büyük bir inancım. Ancak, sadece tasarlandıkları şey için kullanılmalıdır. Komut şablonunun değeri hakkındaki algı, şimdiye kadar anlattığınız şeylerle uyuşmuyor. Komut kalıbının sizin uygulamanızda sizin için satın aldığını ve neden onu kullandığınızı düşündüğünüzün üzerine genişleyebilir misiniz? – rfeak

+1

http://stackoverflow.com/questions/1154935/command-pattern-returning-status benzer bir soru – nos

cevap

4

Hele sen Java, uzak sunucuya gönderilen Command bir "yürütme()" metodu, bu birçok yönden kötü olmamalıdır. Command, alıcının yapması gereken eylemi temsil etmelidir. Bu durumda hangi nesne üzerinde bir yöntem çağırmaktır.

Command Desen yapılan işlemleri temsil etmek veya bu eylemlerin değil uygulanmasını alınması gerekmektedir. Gerçekleştirilecek bir dizi talimatı düşünün.

Ne senin açıklayan temelde aşırı mühendisi RPC çağrısı mekanizmasıdır. Bu tekerleği yeniden icat etme. Mevcut RPC mekanizmalarına bakar, Java dünyasında seçebileceğiniz çok şey vardır. Sonra, RPC'nin senkronize mi yoksa asenkronize mi olduğuna karar vermelisiniz.

A REST tabanlı API popüler ve RMI gibi herhangi anadil özgü bir mekanizma daha bir API olarak uzun sürecek budur.

+0

İyi nokta. Sorunun bağlamı içinde RMI'nın bu senaryo için iyi bir uyum olacağını düşünüyor musunuz? RMI bana doğrudan müşteri tarafından çağrılabilir taslakları verecek? Bu çok daha hoş bir yaklaşım gibi görünüyor. İşaretçiler için tekrar teşekkürler. – Joeblackdev

+0

Sadece RMI'nin android ile harekete geçmediğini keşfettim. Başka önerileriniz var mı? Tekrar teşekkürler – Joeblackdev

+1

Basit bir REST tabanlı API şu andaki günlerde olan şeydir. Ve HTTP üzerinden RPC demek istemiyorum, gerçek REST demek istiyorum. -> http://www.vertigrated.com/blog/2009/10/this-isnt-rest-this-is-rpc/ –