2016-03-19 27 views
3

Temiz mimari tasarımına göre Interactore, tüm iş mantığını içeren bölümdür. Interactore terimi benim için oldukça kafa karıştırıcı. Interactore bana veri ve sunum yapan gibi iki farklı katman arasında etkileşim kurmak gibi görünüyor. kullanımı doğru terimKarmaşık Dönem Temiz Mimaride Interactor

mi? Herkes Interactore'un amacını temizleyebilir mi? Hangi desen izler? Eğer interactore bana öyle görünmüyorsa, katman-katman etkileşimi için tasarım modeli nedir? Bu modeli görünüm Sunucu (MVP) mimarisinde Presenter eşdeğer neler okuyorum itibaren

+0

Kullanım Dolapları: Bu kullanım durumları, varlık akışına ve varlıklardan veri akışını yönetir. Interactors.http: //fernandocejas.com/2014/09/03/architecting-android-the-clean-way/ –

+0

olarak da bilinir. Yani Interactore'un veri akışını yöneten ve iş mantığını yürüten iki sorumluluğu var mı? – vsvankhede

+0

Bilmiyorum. Örneği okumalısınız. –

cevap

4

Bir İnteraktör "iş mantığı" kavramı ile ilgisi yoktur tasarım kalıptır. Daha ayrıntılı bir ayrıntıya girmeden Interactor modeli, Komut şablonunun bir uzantısıdır; Her "iş mantığı" nesnesi, "kara kutu" olarak kabul edilir, istemci için gerçekleştirilecek basit bir talimat, işlemi nasıl gerçekleştireceğini bilen birinden işlemi başlatan nesneyi ayırır. (genişletilmiş açıklama için kaynakçaya bakınız).

Android ortamında, arka plan iş parçacığında uzun zaman alan bir iş yapmak için programcıya talep eden basit bir 'kural' söz konusudur; bu nedenle, interactor modelleri bir "threading" katmanı ekleyerek "Command pattern" i genişletir. Tüm bu karmaşık şeyler, ölçeklenebilir, sürdürülebilir ve (anlaşılabilir) anlaşılabilir bir kod gerektiren bir "temiz mimariyi" oluşturmak için uygulanır. Söz Hakkında

.. ¿katman katman etkileşimi için tasarım deseni nedir? Durumdan bağımsız olarak birden fazla rüşvet cevabı olabilir. Giriş noktası olarak basit bir Arabirim kullanabilirsiniz, böylece Bağdaştırıcı modelini veya belki Cephe modelini kullanabilir veya daha gelişmiş bir şey yapmak isterseniz bir eventbus sistemi uygulayabilirsiniz.

Kaynak: Tasarım kalıpları açıkladı - auth Alexander Shvets. sayfa 14 (Bağdaştırıcı), sayfa 32 (Komut), sayfa 47 (Dış Cephe)

+0

notum gibi bir şey de yapabilirsiniz, ancak lütfen bir örnekle veya bağlantıyla düzenleyin. Teşekkürler – trocchietto

0

.

Bu iş mantığı yok, değil saklamak veya verileri gösterir. Verilerin nasıl veya nerede depolandığından bağımsız olarak ayrı bir katman oluşturur. Sadece herhangi bir formatta girdi ve çıktılara önem verir. Gözlemciler için bir arabirim, kodun genel bir uzantı noktası ve sırasıyla tüm kullanıcı arabirimi veya veri depolama kullanımı için bir ayrıştırılmış giriş noktası olmak üzere, Gözlemci, Bağdaştırıcı ve Cephe kalıplarının birleşiminde kullanılabilir.

Ben Görünüm değerleri hesaplamak ve herhangi UI öğeleri görüntülenen yenilemek için etkileşimde ve veri ayıklamak Modeli nesnelerle etkileşime çünkü bir uygulayıcı olarak adlandırılır varsayalım. Aynı zamanda CRUD işlemleri için bir veri tabanı ile etkileşime girebilirdi, ama sanırım bu çoğunlukla iş mantığında olduğu için Depo Kalıbında ele alındı.

+0

tamam, bu yüzden yürütme için çağrıyı aramış gibi görünüyor ve geri arama için kendini kaydettirin. – vsvankhede

+0

Uzun bir çalıştırma işlemine sahip olan her şey için geri aramaları kullanabilirsiniz, ancak "interactor.computeValue (input)" –

0

MVP kalıbıdır. Evet, sunucu ve veri arasındaki arabulucu dediğiniz gibi (bir dinlenme ya da paylaşılan tercih ya da Sqlite formu olarak).