sınıflar tasarımı '' inşasının doğru kullanımı

2 Cevap php

Ben yönelimli programlama ve bir PHP uygulaması için ilk sınıfların bazı yazılı nesne yeni duyuyorum.

Basit bazı sınıfların, ben bir function __construct() beyan ve bu işlev içinde, belirli bir sınıf yöntemleri diyoruz. Bazı durumlarda, kendimi yapmak için sol benim app sınıfı başlatmasını ve bana hiçbir şey bırakarak, sınıfın __construct() kendi işini yaptı yöntemleri denir çünkü çıkan nesne ile bir şey yapmak gerek bulmuyorum sınıf.

Bu sadece bana doğru gelmiyor. Ben bir şey yapmak asla yeni bir nesne var o aptal görünüyor.

Yine, bu benim daha basit bazı sınıfların sadece böyledir stres olacak. Daha karmaşık olanları, ben __construct() nesnesine ve dışarıdan aracılığıyla sınıf yöntemleri kullanıyoruz.

Ben bir şeyler kodlama, ya da ben am ok şekilde yeniden düşünmeye gerek var mı?

2 Cevap

Peki, yapıcı bir sınıfın yeni bir örneğini oluşturmak için, ve bu sınıf üzerinde gerekli kurulum yapmak için kullanılır. Sadece sınıf oluşturarak ve onu terk ediyorsanız, o bir atık biraz görünüyor. Neden olmasın, örneğin, bir organizasyon aracı olarak sınıfındaki statik işlevleri kullanmak ve sadece yerine kullanmak asla yeni bir örneğini inşa onları (veya onları çağıran bir işlev) diyorsun?

Bu sadece bana doğru gelmiyor. Ben bir şey yapmak asla yeni bir nesne var o aptal görünüyor.

Evet, bu bir kırmızı bayrak yükseltmek gerekir.

Genel olarak, yapıcı herhangi bir yan etkisi izin vermemeliyiz; Başka bir şey için - Onlar nesnenin durumunu başlatmasını içindir. Orada bu kuralın istisnaları elbette vardır, ama genel olarak iyi bir kılavuz çizgisi bulunuyor. Ayrıca yapıcı herhangi bir ağır hesaplamalar yapmaktan kaçınmalıdırlar. Bunun yerine bir yöntemle bu hareket ettirin.

, Global değişkenler veya statik (sınıf) değişkenler değişiklikler - Side effects çok şey vardır çevreye çıkışı (örneğin print(), header() ya da exit() çağrıları); bir veritabanına veya başka bir dış hizmet çağrıları ve hatta diğer nesnelerin durumuna değiştirir.

Bir yan etkisi ücretsiz bir fonksiyon da "saf" fonksiyonu denir - bir procedure, yan etkileri olan bir işlev olduğu için karşı çıktı. Bu açıkça prosedürlerden saf fonksiyonları ayrı (ve hatta belki de bu şekilde etiket) için iyi bir uygulamadır.