Programlamada bir nesnenin temsili. - sayfa 9

 
JRandomTrader # :

Ve "uygulama" ne yazıyor?

uygulama dillerinde.

 

Bölüm 2.

İlk bölümde Nesnenin bileşenlerinden bahsettik ve bu bölümde bunların birbirleriyle olan ilişkilerini ele alacağız. Bileşenlerin kendilerine şartlı olarak " Proto-bloklar " adı verilir, çünkü bunlar tam teşekküllü nesneler değildir, ancak tüm nesnelerin ve sistemlerin parçası olan bazı "bina" varlıklarını temsil eder. Size ilk listelerini hatırlatayım:

  • Bir parametre , belirli bir yapısal küme veya değerin adlandırılmış ve yoğunlaştırılmış bir temsilidir.
  • Özellik seti - Nesneye dahil edilen parametrelerin listesi.
  • Yapıcı işlevi , parametrelerinin listesine dayalı olarak bir Nesneyi yeniden üreten bir algoritmadır.
  • Şekil - İki veya üç boyutta var olan Nesneye ait kümelerin türünü birleştirir.
  • Durumlar , bir Nesnenin varlığında önemli " kesme noktaları "dır. Çevresel koşullar değiştiğinde veya bağımsız program yürütme sürecinde Nesnenin geçtiği parametre değerleri.
  • Olaylar , Nesnenin kendisinde veya çevresinde önemli değişikliklerdir.
  • Süreçler - değişen çevresel koşullar veya bağımsız program yürütmenin bir sonucu olarak Nesnenin (lerin) değişen durumlarının farklı dizileri .

Form, State, Event ve Process'in parametrik "gövdesine" ek olarak, görevi proto-blokundan değerleri "aktarmak" olan bir işleyici işlevi ekleyelim (sadece "işleyici" diyelim). Nesnenin parametrik kümesine. Örneğin: Yapıcı işlevinde etiketin 5 parametresi vardır ve bu küme onun parametrik "gövdesi"dir. Diyelim ki yeni bir durum bulduk ve ilk parametrelerin farklı değerleri olarak yazdık ve Etiketi yeni bir duruma aktarmamız gerektiği anda, bunları parametrikten aktaracak bir işlev çağırmalıyız. Devletin yapısından Etiketin parametrik "gövdesine". Basitçe söylemek gerekirse, bu işleyici, proto-blok değerleriyle Nesnenin parametrelerini başlatır. Süreç ve Form için, değerlerin Nesnenin gövdesine aktarılmasıyla benzer bir ilke çalışır, ancak uygulama farklıdır. Ancak Olayı işlemek için değerleri aktarmanız gerekmez - kontrol edilmeleri gerekir, bu da koşul operatörünün işleyici olarak uygun olduğu anlamına gelir.

Konseptimde çok sayıda işleyici olduğunu ve ayrı bir sınıflandırmayı hak ettiklerini söylemeliyim, ancak bu sunumu çok fazla karmaşıklaştıracak ve bu nedenle onları şartlı olarak birkaç gruba ayırarak yüzeysel olarak onlara değineceğim:

  • " Taşıyıcılar " - Proto-bloktan Nesneye değerleri aktaran işleyiciler (örneğin, Durumdan, Formdan, İşlemden Nesnenin hedef parametrelerine).
  • " Bağlı " - Sistemdeki ilgili (bağımlı) parametrelerin değerlerini değiştiren işleyiciler (örneğin, parabolik bir hareket yörüngesi, koordinat değerlerinde eşzamanlı bir değişiklik anlamına gelir ve bu, x,y'yi bağlayan işleyici tarafından gerçekleştirilir) parametreler). Parametre bağlantılarındaki bağımlılıklar formüllerle ifade edilebilir veya işleyicinin gövdesinde bulunan koşullarla tanımlanabilir.
  • " Assemblers " - Nesnenin parametrik gövdesinden "paketlerini açarak" ve bunları önemli güncel değerlerle kaydederek veya diğer proto-blokları kısmen veya tamamen "klonlayarak" yeni proto-blokları "oluşturan" ve kopyalarda gerekli değişiklikler. Bu süreçte, depolandıkları özel "modüller" içinde sıralanan proto-bloklardan ya tablosal ya da hiyerarşik yapılar oluşturulur.
  • "Modüler" - Proto-blokları depolayan çeşitli tiplerdeki modüller için işleyiciler.   *(Proto-blokların "modülleri" daha sonra tartışılacaktır).

Bu tam bir liste değildir ve işleyici türlerinin adları isteğe bağlıdır, ancak genel olarak uzmanlıklarının bölünmesi şöyle görünür.


İşleyici işlevlerinden sonra konsepte bir sonraki ekleme " Modüller " olacaktır. Oluşturulan proto-blokların bir yerde saklanması ve sipariş edilmesi gerektiğini varsaymak mantıklıdır ve ayrıca karışıklığı önlemek ve işleyicilerin izin vermesi için farklı tipteki proto-blokların depolanmasının en uygun olacağını tahmin etmek kolaydır. Nesnenin büyüyen içeriği içinde kolayca "yönlendirin". Bu nedenle, "depolar" veya daha da güzel oldukları için - proto-blokların " Modülleri " oluşturuyoruz. Nesnenin Durumları, Süreçleri, Olayları ve Formları için, proto-blokların olacağı kendi modülleri oluşturulacaktır:

  1. Sırayla saklayın.
  2. Çarpmak.
  3. Gerekirse işleyiciler tarafından alınır.
  4. Diğer Modüllerdeki proto-bloklara bağlantı.

Dördüncü nokta - farklı türlerdeki proto-blokların "bağlayıcı" olması, sadece ilk bölümde bahsettiğim, birbirlerine "yapısal dahil olmalarına" dayanır - Süreç, Durumları içerir, ... Olay, Durumu içerir, ... Süreç Olayları içerir, ... Durum bir Form vb. içerebilir... Örneğin, ayrı bir modülde bir olay modeli oluşturursak, koşullarının hiyerarşisi "Olay" içinde depolanan Olayları içerecektir. modülü ve bu Olaylar, sırayla, Durumlar modülünde depolanan Durumları içerir. Böylece, sadece verimli bir depolama ve proto-blok kullanımı düzeni oluşturmakla kalmıyoruz, aynı zamanda modüller arasındaki bağlantılarla basitçe birbirine bağlayarak "yapısal içermelerini" de uyguluyoruz. Keyfi veya düşünceli bir şekilde bağlantıları değiştirerek, hem mevcut olanlardan yeni proto-bloklar oluşturabilir hem de Nesnenin "davranışındaki" olayı veya mantıksal modeli değiştirebiliriz. Bağlantıları mantıksal model düzeyinde değiştirmek (bu da kendi modülünde saklanacaktır) programı tamamen değiştirebilir ve aynı zamanda kodda hiçbir şeyi yeniden yazmamız gerekmez. Bunda, proto-blokların modüler bölünmesinin avantajlarını görüyorum.

Hepsi varken. Ardından, olay ve mantıksal modellere geçeceğim ve bunların nasıl oluşturulduğunu ele alacağım.

Bir şey net değilse veya ilginçse sorular sorun.


 
Bu kavram ne için?
 
Aliaksandr Hryshyn # :
Bu kavram ne için?

Bu kavram, bence, bir kişi tarafından değil, bilgisayarın kendisi tarafından işlevsel sistemlerin "inşası" (yazma değil) olacak olan bir sonraki programlama düzeyine geçme girişimidir. Program programlar oluşturabilecektir.

Şimdi github kodu üzerine eğitilmiş bir sinir ağı var ama kastettiğim hiç de bu değil.

 
Bir şeyi çözemiyorum, ObjectCreate (...) trend çizgisi için değerleri ayarladım, çizgi görüntülenmiyor. Lütfen yardım edin, nesne nasıl görüntülenir?
 
Реter Konow # :

Bu kavram, bence, bir kişi tarafından değil, bilgisayarın kendisi tarafından işlevsel sistemlerin "inşası" (yazma değil) olacak olan bir sonraki programlama düzeyine geçme girişimidir. Program programlar oluşturabilecektir.

Şimdi github kodu üzerine eğitilmiş bir sinir ağı var ama kastettiğim hiç de bu değil.

Selam Peter.
OOP'ye ek olarak, DDD ( Alan tabanlı tasarım ) da vardır.
Sadece farkında olmak için.

 
Nikolai Semko # :

Selam Peter.
OOP'ye ek olarak, DDD ( Alan tabanlı tasarım ) da vardır.
Sadece farkında olmak için.

Sıcakla yumuşaklığı karıştırıyorsun.

 
Andrei Trukhanovich # :

Sıcakla yumuşaklığı karıştırıyorsun.

Sıcakla soğuğu karıştırıyorsun
 
Vladimir Baskakov # :

Abi sinyal nerede

 
Andrei Trukhanovich # :

Abi sinyal nerede

senin nerede?