Giriş
Bu sayfada, işlevleri çağırma ve erişme ile ilgili en iyi uygulamalar açıklanmaktadır. özellikleri hakkında daha fazla bilgi edinin. Bu ilkeler, veya Blockly'nin bağımsız bir uygulamaya entegre edilmesi.
Alt sınıflandırma ve genişletme
Blockly'nin işlev eklemek için birden fazla paradigması vardır. Örneğin:
- Alt sınıflar (ör. yeni oluşturucu oluşturma)
- Karışımlar (ör. blok uzantısı veya mutatör ekleme)
- Blok tanımları (ör. prosedür bloku tanımları)
Bu belgenin amaçları doğrultusunda, üç husus da eşdeğerdir alt sınıflama.
Alt sınıf ekleme
Belirli sınıfların Blockly.inject
yöntemiyle değiştirilmesini destekliyoruz. Bu
alt sınıflar ya temel sınıfı genişletmeli ya da karşılık gelen
arayüzü.
Alt sınıfınızı inject yöntemine aktarabilirsiniz.
Blockly.inject('blocklyDiv', {
plugins: {
'metricsManager': CustomMetricsManagerClass
}
}
Dilerseniz sınıfınızı Blockly.registry
uygulamasını kullanarak kaydettirebilir ve
sınıfa eklenecek kayıt defteri adı. Bu, yerleştirme verilerinizi depoluyorsanız yararlı olur
yalnızca JSON biçimindedir.
Blockly.registry.register(Blockly.registry.Type.METRICS_MANAGER, 'YOUR_NAME', SubClass);
Blockly.inject('blocklyDiv', {
plugins: {
'metricsManager': 'YOUR_NAME'
}
}
Aşağıdaki sınıflar değiştirilebilir:
Kayıt Adı | Arayüz/Temel Sınıf |
---|---|
blockDragger |
Blockly.IBlockDragger |
connectionChecker |
Blockly.IConnectionChecker |
connectionPreviewer |
Blockly.IConnectionPreviewer |
flyoutsVerticalToolbox |
Blockly.IFlyout |
flyoutsHorizontalToolbox |
Blockly.IFlyout |
metricsManager |
Blockly.IMetricsManager |
renderer |
Blockly.blockRendering.Renderer |
toolbox |
Blockly.IToolbox |
Arayüzleri kullanma hakkında daha fazla bilgi için arayüzler bölümüne bakın inceleyebilirsiniz.
Görünürlük
TypeScript erişim değiştiricileri
tuşuna basarak temel kitaplıktaki görünürlüğü public
, private
veya protected
olarak işaretleyin.
Bazı mülklerde @internal
ek açıklaması olabilir
TsDoc yorumları.
Tüm public
ve protected
özellikleri
Blockly web sitesinin Referanslar bölümü. Ayrıca transkriptinizi
görünürlüğü kontrol etmek için kodu okuyun.
herkese açık
public
olarak işaretlenen her şey, herkese açık API'mizin bir parçasıdır. Bir modüldeki herhangi bir mülk
reklamlar herkese açık olarak değerlendirilir.
Genel API'mizi sık sık veya geçerli bir neden olmaksızın değiştirmemeye ve uyarı. İstisna: Yeni bir API'yi bir sürümde herkese açık hale getirebilir, erken geri bildirimlere yanıt olarak bir sonraki sürümde değiştirebilirsiniz. Bu tarihten sonra kamu yararına çalışan bir görevi veya mülkü olan
Herkese açık işlevler herhangi bir yerden çağrılabilir ve alt sınıflarda (İmza değişmediği sürece)
korumalı
Korumalı işlevlere ve özelliklere yalnızca tanımlayıcı sınıf veya alt sınıftır.
Alt sınıfların, korumalı işlevleri ve özellikleri geçersiz kılmasına izin verilir. ve farklı tür imzaları değiştirebilirsiniz.
Örneğin, temel oluşturucu sınıfını genişleten bir özel oluşturucu, sahip olmayabilir.
Her durumda, işlevin veya özelliğin nasıl çalıştığını anladığınızdan kodun geri kalanında kullanılır.
gizli
Bunlara yalnızca tanım ile aynı dosyadaki kodla erişilebilir. Doğrudan bu özelliklere erişmek tanımlanmamış davranışlara neden olabilir.
Alt sınıfların, özel işlevleri ve özellikleri geçersiz kılmasına izin verilmez.
Özel mülkler uyarı olmaksızın değiştirilebilir. Blockly'nin herkese açık API'sinin bir parçası olarak kabul edilir.
Blockly'deki bazı işlevlerde görünürlük ek açıklamaları bulunmaz, çünkü dışa aktarılmıyor. Bu işlevler aslında ve tanımlayıcı modülünün dışında kullanılamaz. Değerlendirme araçları, özel mülklere eşdeğerdir.
internal
Dahili işlevler ve özelliklerin çekirdek uygulamanın içinde kullanılması
erişilebilir ancak harici olarak değil. Bu sayfalar TsDoc ile tanımlanmıştır @internal
ek açıklaması da yer alır.
Dahili özellikler önceden uyarı yapılmaksızın değiştirilebilir. Blockly'nin herkese açık API'sinin bir parçası olarak kabul edilir.
Dahili mülklere çekirdek içindeki herhangi bir yerden erişilebilir ve temelde alt sınıflara yer verir. Farklı olmalıdır temel kitaplığın dışından erişilir.
desteği sonlandırıldı
@deprecated
olarak işaretlenen hiçbir şey kullanılmamalıdır. Kullanımdan kaldırma işlemlerinin çoğu şunları içerir:
tercih edilen koda ilişkin talimatları, bir konsol uyarısında veya TSDoc'ta paylaşın.
Mümkün olduğunda, kullanımdan kaldırılan işlevler şunu içeren bir uyarı kaydeder: amaçlanan silme tarihi ve çağrılacak yerine kullanılacak bir işlev önerisi.
SSS
Kullanmak istediğim işlev herkese açık değilse ne olur?
Özellik isteğinde bulunma temel Blockly'de. Kullanım alanınızın açıklamasını ekleyin ve herkese açık hale getirmemizi istiyorsunuz.
Bu özelliği, videonun herkese açık mı yoksa herkese açık mı olacağıyla ilgili istekte bulunmak için kullanırız. için başka yollar olup olmadığına bakın.
Bu içeriği herkese açık hale getirmeye karar verirsek siz veya Blockly ekibi ve bir sonraki Blockly sürümünde yayınlanır.
Bir eklentide herkese açık olmayan bir üye kullanmayı tercih ederseniz
eklentisini beta sürümünde kullanıp README
dosyanıza bilgileri dahil edebilirsiniz.
Maymun yamasıyla ilgili ne diyebiliriz?
Monkeypatching hakkında daha fazla bilgi edinin.
Yamalar önceden haber verilmeksizin çalışmayı durdurabileceğinden Monkey yama uygulaması güvenli değildir herkese açık olmayan parçalarını kullanmaya devam edebilirsiniz. Eklentiye yama yapmak kodunuz, başka yazılımlarla kötü etkileşim kurabileceğinden eklentisidir. Bu nedenle, biz kesinlikle uygulamalarda ve üçüncü taraf eklentilerinde monkeypatching'e karşı tavsiyede bulunursanız ve , birinci taraf eklentilerinde kabul etmez.
Herkese açık işlevleri geçersiz kılabilir miyim?
Alt sınıflandırma yaparken: evet. Diğer bir deyişle: hayır, maymun yama yapmak anlamına gelir.
Korunan işlevleri geçersiz kılabilir miyim?
Alt sınıflandırma yaparken: evet. Diğer bir deyişle: hayır, maymun yama yapmak anlamına gelir.
Dahili veya özel işlevleri geçersiz kılabilir miyim?
Hayır, maymun yamalama.
Mülklere doğrudan ne zaman erişebilirim? Ne zaman bir alıcı veya setter kullanmalıyım?
Bir alıcı veya belirleyici yayınlıyorsak, lütfen doğrudan yerine Mülke erişmek. Tesis herkese açık değilse kesinlikle alıcıları kullanın ve belirleyiciler.
Bir mülkte ek açıklama yoksa ne olur?
Varsayılan olarak herkese açıktır, ancak belirleyici çift olacaktır.
Bir işlevin ek açıklaması yoksa ne olur?
Varsayılan olarak herkese açıktır.
Hâlâ emin değilsem ne olur?
Forumda soru sorma Genellikle bir iş günü içinde size geri döneriz.