Singleton modelini MQL4'te uygulamak mümkün mü?

 

Tek bir kopyada ihtiyaç duyulan yapılar var. Doğal olarak, farklı veri yapı sınıflarında birkaç nesne oluşturmak kesinlikle önerilmez. Böylece, bu durumda en makul seçeneğin singleton modelini kullanmak olduğu sonucuna vardım. Doğru?

İşte örnek bir yapı:

 struct Symbol_Properties
{
   datetime     gdt_Quote;           // Время поступления последней котировки
   double       gda_Price [ 2 ];       // Текущие рыночные цены (0 - Bid, 1- Ask)
   double       gd_Spread;           // Размер спреда в пунктах
   double       gd_Swap;             // Своп
   double       gd_Comission;         // Комиссия
   double       gd_Pt;               // Величина одного пункта
   int          gi_Digits;           // Количество знаков в цене после запятой
   int          gi_StopLevel;         // Минимально-допустимый уровень стоп-лосса/тейк-профита в пунктах
   int          gi_FreezLevel;       // Уровень заморозки ордеров в пунктах
};

Nasıl singleton'a çevirebilirim? MQL4'te böyle bir olasılık var mı?

Kim iş parçacığı geliştirmelerinde genellikle bu kalıbı kullanır?

 
hoz :

Tek bir kopyada ihtiyaç duyulan yapılar var. Doğal olarak, farklı veri yapı sınıflarında birkaç nesne oluşturmak kesinlikle önerilmez. Böylece, bu durumda en makul seçeneğin singleton modelini kullanmak olduğu sonucuna vardım. Doğru?

İşte örnek bir yapı:

Nasıl singleton'a çevirebilirim? MQL4'te böyle bir olasılık var mı?

Kim iş parçacığı geliştirmelerinde genellikle bu kalıbı kullanır?


"... En azından bir kare iki terimli çizebilir misin?..." - "... Hayır, hayal bile edemiyorum..."

MQL4'te herhangi bir kalıbı uygulayabilirsiniz.

 
tara :


"... En azından bir kare iki terimli çizebilir misin?..." - "... Hayır, hayal bile edemiyorum..."

MQL4'te herhangi bir kalıbı uygulayabilirsiniz.

Alex , bir örnek ver. http://cpp-reference.ru/patterns/creational-patterns/singleton/ makalesini okudum

Aslında bunu yapıma nasıl uygulayacağımı anlamadım. Bu yüzden soruyorum.

 
hoz :

Alex , bir örnek ver. http://cpp-reference.ru/patterns/creational-patterns/singleton/ makalesini okudum

Aslında bunu yapıma nasıl uygulayacağımı anlamadım. Bu yüzden soruyorum.


Victor, okumadığım bir makaleyi yapınıza nasıl uygulayacağımdan bahsetmiyorum ve ikincisinin bilinmeyen sınıflarla ilişkisi benim için anlaşılmaz.

Yani, sözlü olarak doğru şekilde tanımlanan herhangi bir kalıp MQL4'te uygulanabilir.

 
İnternette bir kez ilan et ve unut.
 
FAQ :
İnternette bir kez ilan et ve unut.
Ve doğru! Çünkü Victor neden bir singleton'a ihtiyaç olduğunu bilmiyor :-)
 
Victor, her zaman olduğu gibi, ayrıntılara giriyor, kompleksten çıkıyor, ama tam tersi olmalı ...
 
hoz :

Tek bir kopyada ihtiyaç duyulan yapılar var. Doğal olarak, farklı veri yapı sınıflarında birkaç nesne oluşturmak kesinlikle önerilmez. Böylece, bu durumda en makul seçeneğin singleton modelini kullanmak olduğu sonucuna vardım. Doğru?

İşte örnek bir yapı:

Nasıl singleton'a çevirebilirim? MQL4'te böyle bir olasılık var mı?

Kim iş parçacığı geliştirmelerinde genellikle bu kalıbı kullanır?


Burada böyle bir konu vardı ve hatta biri bu singleton'ı çizdi, araştırırsanız bulabilirsiniz. Ama burada ona ihtiyacı yok.
 
tara :


Victor, okumadığım bir makaleyi yapınıza nasıl uygulayacağımdan bahsetmiyorum ve ikincisinin bilinmeyen sınıflarla ilişkisi benim için anlaşılmaz.

Yani, sözlü olarak doğru şekilde tanımlanan herhangi bir kalıp MQL4'te uygulanabilir.

Aleksey , Uzun zamandır programlama yapıyorsunuz... Yapının üye-elemanları, örneğin: sembol, nokta, stop loss vb. oldukça sık kullanılıyor. Ve birçok sınıfta onlara ihtiyaç var. Dolayısıyla, bu yapıları kullanan sınıflar ile bunlara karşılık gelen yapılar arasındaki ilişki sorununun böyle bir sorusu yoktur!

SSS :
İnternette bir kez ilan et ve unut.

Ve burada init? Ne demek istiyorsun? Onları uzman olarak tanımlamıyorum.

Zhunko :
Ve doğru! Çünkü Victor neden bir singleton'a ihtiyaç olduğunu bilmiyor :-)

Şey, evet, .. Asıl mesele Vadim'in farkında olması :)))))

Biliyorum!

SSS :
Victor, her zaman olduğu gibi, ayrıntılara giriyor, kompleksten çıkıyor, ama tam tersi olmalı ...
hm. Peki, nasıl? Yapıda, yapıdan hemen sonra oluşturulan bir nesne ile tüm yöntemler statik hale getirilmeli ve bu yapıyı her sınıfta ve EA'nın kendisinde mi içermeli?
 
Evet
 

şöyle yaptım:

 struct Symbol_Properties
{
   static datetime     gdt_Quote;           // Время поступления последней котировки
   static double       gda_Price [ 2 ];       // Текущие рыночные цены (0 - Bid, 1- Ask)
   static double       gd_Spread;           // Размер спреда в пунктах
   static double       gd_Swap;             // Своп
   static double       gd_Comission;         // Комиссия
   static double       gd_Pt;               // Величина одного пункта
   static int          gi_Digits;           // Количество знаков в цене после запятой
   static int          gi_StopLevel;         // Минимально-допустимый уровень стоп-лосса/тейк-профита в пунктах
   static int          gi_FreezLevel;       // Уровень заморозки ордеров в пунктах
};
//---- Создадим объект структуре Symbol_Properties
Symbol_Properties SSym;
datetime    SSym.gdt_Quote = 0 ;
double      SSym.gda_Price [ 2 ] = { 0.0 , 0.0 };
double      SSym.gd_Spread = 0.0 ;
double      SSym.gd_Swap = 0.0 ;
double      SSym.gd_Comission = 0.0 ;
double      SSym.gd_Pt = 0.0 ;
int         SSym.gi_Digits = 0 ;
int         SSym.gi_StopLevel = 0 ;
int         SSym.gi_FreezLevel = 0 ;

Ancak bazı nedenlerden dolayı derleme sırasında çok fazla hata var. Sorun nedir?

Neden: