OOP için genel gider - sayfa 5

 
fxsaber :

Senin sargın sende, diğerinde onunki var. Soru farklıydı, MQL4'ten daha uygun bir sarmalayıcı oluşturmak mümkün müdür?

Pek fazla seçenek olduğunu sanmıyorum...

Şahsen, bir uzmanın mantığını belirli bir platformun özelliklerinden ayırmak için yalnızca platformlar arası için bir sarmalayıcıya ihtiyacım var

 
Andrei :

Tabii ki, OOP'nin güzelliğini kaynaklarla ve çok fazla hata ayıklama süresiyle ödemek zorundasınız. OOP, yalnızca uygun bir metin sarmalayıcı olarak veya çalışma zamanı ortamını başlatırken minimum kullanımla anlamlıdır ... Özünde, OOP , programcıların çalışma saatlerinin maliyetini artırmak ve daha gelişmiş ekipmanların satın alınmasını teşvik etmek için tamamen Microsoft'tan bir pazarlama işiydi. Üstelik kendileri aptal değiller ve tüm yazılımı C ve assembler'da yazıyorlar.

Eh, sen bir hayalperestsin, ancak ...

 
govich :

Eh, sen bir hayalperestsin, ancak ...

Lyko tartışma konusu üzerine anlamlı bir şey mi ördü?

 

tekrar karşı karşıya...

MQL'de yöntemlerin uygulanmasını prototipten ayırmak imkansızdır ve kullanıcıya (alıcı, test eden, arkadaş/yoldaş) ayrı bir *.mqh dosyası ve ayrı bir *.ex4 dosyası sağlamanın bir yolu yoktur (benzer şekilde) *.h ve .obj/lib/dll C++'da)

 
Maxim Kuznetsov :

tekrar karşı karşıya...

MQL'de yöntemlerin uygulanmasını prototipten ayırmak imkansızdır ve kullanıcıya (alıcı, test eden, arkadaş/yoldaş) ayrı bir *.mqh dosyası ve ayrı bir *.ex4 dosyası sağlamanın bir yolu yoktur (benzer şekilde) *.h ve .obj/lib/dll C++'da)

Görev hakkında daha fazla şey duyabiliyor musun? Oldukça çarpık görünüyor, saf arayüzler döndüren ithal edilmiş bir fabrikaya sahip bir başlık sağlayabilirsiniz ve tüm uygulama ex4 içinde kablolanmıştır.

 
Stanislav Korotky :

Görev hakkında daha fazla şey duyabiliyor musun? Oldukça çarpık görünüyor, saf arayüzler döndüren ithal edilmiş bir fabrikaya sahip bir başlık sağlayabilirsiniz ve tüm uygulama ex4 içinde kablolanmıştır.

görev, kullanıcıya en az hareketle bir sınıf kitaplığı vermektir: sınıfların tanımlandığı mqh ve uygulamalarının olduğu ex4.

Bu gün için tek seçenek, bu tıkacı atlamak için koltuk değnekleriyle metnin karanlığını çekmek.

ex4'te CFoo uygulamasını kaldırmanın kısa ve kullanışlı bir yolunu biliyorsanız - tarifi paylaşın.

class CFoo {
public:
   CFoo();                         //default
  CFoo(const CFoo orig); // copy
   ~CFoo();
   bool Set(string key,CFoo & link); 
   CFoo *Get(string key);
   bool Clear(string key);

};

 
Maxim Kuznetsov :

görev, kullanıcıya en az hareketle bir sınıf kitaplığı vermektir: sınıfların tanımlandığı mqh ve uygulamalarının olduğu ex4.

Bu gün için tek seçenek, bu tıkacı atlamak için koltuk değnekleriyle metnin karanlığını çekmek.

ex4'te CFoo uygulamasını kaldırmanın kısa ve kullanışlı bir yolunu biliyorsanız - tarifi paylaşın.

class CFoo {
public:
   CFoo();                         //default
  CFoo(const CFoo orig); // copy
   ~CFoo();
   bool Set(string key,CFoo & link); 
   CFoo *Get(string key);
   bool Clear(string key);

};

Eh, zaten bir yol yazdım - neden çalışmıyor? Bir başlık dosyasında açıklanan soyut bir sınıf (arayüz) döndüren bir fabrika yöntemi veya işlevi yapın. Tüm uygulama gizlidir. Gerçek bir örnek, örneğin blogumda anında uzman optimizasyon kitaplığı hakkında bulunabilir (İngilizce).

Фабричный метод (шаблон проектирования) — Википедия
Фабричный метод (шаблон проектирования) — Википедия
  • ru.wikipedia.org
Шаблон проектирования Тип: Назначение: Структура: Плюсы: Минусы: Описан в Design Patterns Фабричный метод (англ.  также известен как Виртуальный конструктор (англ.  )) — порождающий шаблон проектирования, предоставляющий подклассам интерфейс для создания экземпляров некоторого класса. В момент создания наследники могут определить, какой...
 
Stanislav Korotky :

Eh, zaten bir yol yazdım - neden çalışmıyor? Bir başlık dosyasında açıklanan soyut bir sınıf (arayüz) döndüren bir fabrika yöntemi veya işlevi yapın. Tüm uygulama gizlidir. Gerçek bir örnek, örneğin blogumda anında uzman optimizasyon kitaplığı hakkında bulunabilir (İngilizce).

Kaynağı dağıtmaya çalışıyorsunuz. Ve wiki'ye bağlantılar burada ve böylece herkes bilir
 
Maxim Kuznetsov :
Kaynağı dağıtmaya çalışıyorsunuz. Ve wiki'ye bağlantılar burada ve böylece herkes bilir

Kaynağa sahip wiki'ye olmayan bir bağlantı yuvarlanmıyor mu? ;-)

 
Stanislav Korotky :

Kaynağa sahip wiki'ye olmayan bir bağlantı yuvarlanmıyor mu? ;-)

ama yuvarlanmıyor :-)

Size söylüyorum - yapmaya çalışın, bu çok şiddetli bir koddur. Örneklenmiş sınıf "СFoo: public InterfaceCFoo", InterfaceCFoo *privateContext alanını içermelidir (1:1 bağlantı kurun), bunu fabrikada oluşturun ve silin, tüm yöntemleri devredin ve aynı zamanda CFoo* bağlantılarını bu<->privateContext'i çevirin geri ve ileri. Bu, "el ile gün batımı", yani mirasın delegasyonla ve birdenbire değiştirilmesidir.