Sadece bir MySQL veritabanı kullanmak varken neden Nesneleri yapmak?

5 Cevap php

Yani PHP nesne yönelimli açınızdan biraz karıştı. Hemen ben PHP ve veritabanları hakkında çok az şey biliyoruz aslında özür dileyecek.

Benim sorum, diyelim ki, kullanıcıların tutmak için bir veritabanı yapıyoruz, neden size sadece veritabanından bilgi indirebiliriz zaman o kullanıcı için bir sınıf / nesne yapmak istersiniz?

Ayrıca, nesneler için verilerin depolandığı bir nesne / sınıf yapmak olsaydı? Ben bir kullanıcı adı ve e-posta ile bir sınıf var ve ben o nesneyi yaparsanız Örneğin, depolanan olsun demek edildi?

Bir öğrenme çaylak yardımcı olmak için zaman ayırdığınız için teşekkür ederiz!

5 Cevap

My question is when your making per say a database to hold users in it, why would you want to make a class/object for that user when you can just pull info from the database.

Soyut uzak özgü işlevlerle nesneleri yapmak. Eğer taşırsanız ne (varsayımsal olarak), Microsoft SQL Server, diyelim, ne olur? Lütfen entire sitenizi güncellemek yerine, sadece nesnenin uygulanmasını düzenlemek.

Also if you were to make a object/class where is the data for the objects stored? Like a class with a username and email, and I make that object, were does it get stored.

Herhangi bir değişken olarak aynı yerde.

Eğer herhangi bir makul geniş yazılım sistemi sadece ham veritabanı erişimi üstüne bazı soyutlama kullanmak istediğiniz nedenleri bir yeri vardır. Eğer nesne yönelimli bir yaklaşımla bakıyoruz Eğer Object Oriented paradigmanın temel fikirlerden biri bir nesne verileri ve bu veriler üzerinde hareket mantığını kapsüller olduğunu düşünmelisiniz.

Somut bir örnek verelim. Uygulama (UI) bir parçası bir güzel biçimlendirilmiş kullanıcı adı dahil olmak üzere kullanıcı bilgilerini görüntülemek için ihtiyacı olduğunu söylüyorlar. OO dünyada size veritabanındaki verilerin yerel bir kopyasını saklamak istiyorsunuz bir User nesnesi var ve getFormattedName (), veya benzer bir şey gibi yöntemler açığa olabilir. Şimdi uygulama kalanı veritabanı hakkında bilmek gerek kalmadan bu kodu kullanın veya isim biçimlendirilmiş bile nasıl olabilir. Sadece doğrudan veritabanından veri çekerek olsaydı Öte yandan sonra (gerçekten veritabanları umurumda değil) uygulamanın UI kısmı hala nasıl veritabanından kullanıcı hakkında bilgi almak için kendini bilmek zorunda, ve nasıl güzel kullanıcıların adını biçimlendirmek.

Basitçe söylemek gerekirse, mantık bir veritabanı tablosunda yakalanan ancak giriş ile ilgili değildir vardır. Veritabanı sadece ham veri depolar. Bu uygulama geri kalanı ile nasıl etkileşime veriler kullanılır ve nasıl nesne yöntemlerle yakalanan olmalıdır.

Sen nesne yönelimli tasarımı temel bir eksik. Tamamen kalıtım almamak, Nesneler bir nesne adı verilen tek bir birim içine bilgi / veri ve fonksiyonlar / prosedürler / işlemleri birleştirmek. Bu nesne işlemleri (yöntemler / davranışlar / fonksiyonlar / prosedürler) gerçekleştirir ve özelliklere sahiptir. Bir veritabanı operasyonel / prosedürel bilgi kümesinin tamamını olmaz. Tasarım gereği, bir veritabanı yalnızca verileri içeren ve veri nasıl kullanılabileceğini hiçbir şey ya da ne veri yok bilecek.

Hızlı olması için tasarlanmış bir tablo moda Veritabanları veri depolamak. Nesneler çok daha esnek; ağaçların olabilir, onlar listeleri olabilir, bunlar widget, ya da bir milyon şeyler dışında başka bir şey olabilir. Bunlar sunum, veri, veya yapısını temsil edebilir. (O anında bir değer hesaplamak yerine bir veritabanından almak için daha kolay iken) ve hatta bazen daha hızlı. Veritabanları çok güçlü ve önemlidir, ancak bir web uygulaması gerçekleştirir görevlerin küçük bir alt kümesi için sadece uygun bulunmaktadır. Gerisi nesneler tarafından daha kolay yapılır.