Her şeyden önce, google onu denedim, ancak çoğunlukla sadece sabitler ve diğer ilgisiz bilgiler dizileri tanımlamak hakkında tartışmalar bulundu.PHP Sadece sabitleri içeren sınıflar
Kodumu daha okunaklı (ve güzel) yapmak için bir çözümle ilgili bir sorum var. Temel olarak çoğu fonksiyonun başarılı olduğunu gösteren bir durum kodu döndürmesi veya bir şeylerin yanlış gitmesi durumunda bir hata kodu olması gerekir.
<?php
class StatusCode {
const success = 0;
const badArgument = -1;
const badQuery = -2;
const outOfMana = -3; //Really just for demonstration purposes
...
}
amaçlı sihirli numaralar benim kodundan kaybolur ve bir aramaya gerek kalmadan ters gitti açıkça neyi yapmaktır: Bunun için, ben sadece sabitleri içerir şöyle "StatusCode" adlı bir sınıf yapılan yere explaination:
if (mana > 10) {
//Do some magic
return StatusCode::success;
}
else {
//Oh god this is not good!
return StatusCode::outOfMana;
}
Ayrıca kazara yinelenen hata kodları kullanarak olasılığını ortadan kaldırmak gerekir. Oldukça eminim ki bu, başvuruma küçük bir ek yük ekliyor, ancak kodun daha kolay anlaşılmasını sağladı. Bunu yapmamanın bazı yıkıcı sebepleri var mı? Belki bunun için daha iyi bir yol?
(daha az tatlı görünüyor çünküdefine(CONSTANT, "value")
yaklaşım kaçındım ve benim Alman klavyede :) üzerine yazmak için bir güçlük var) Java ve diğer dillerde
Yaptıklarınızı yapmamanız için bir neden yok. Söylediğiniz gibi, kodunuzu daha okunabilir hale getirir. Havai eklemeye gelince, doğru olsa bile, tamamen minimum yük vardır. Daha iyi yollara gelince, sabitleri tanımlamak için arayüzler kullanarak yaptıklarınızda varyasyonlar vardır. TL; DR - yaptığın şey iyi. –
Tamamen @ N.B'ye katılıyorum. dedim. Bu yazı ile ilgili tek sayım, kod incelemesinde bu noktada olması gerektiğidir;) – Prisoner
Kodlama stilinin bu küçük köşesinde, seçiminiz kesinlikle en iyisidir.Ve stil hakkında konuşurken, çok sık "mutlak en iyi" demek olmaz. ;-) BTW, bu sınıfın "soyut" veya "final" i, nasıl kullanılmaması gerektiğine dair ek bir ipucu yapmak isteyebilirsiniz. Ne yazık ki, anlaşmayı imzalayan ikisi de olamaz. – Jon