آبجکت (Object) نمونهای از داده و رفتار است که در زمان اجرا وجود دارد. در برنامهنویسی آبجکتگرا، آبجکت معمولا نمونهای از Class است و میتواند وضعیت را در Property و رفتار را در Method نگه دارد. اما همه زبانها مدل یکسانی از کلاس و آبجکت ندارند. در Go ساختار Struct همراه با Method راه رایجی برای مدلسازی داده و رفتار است و کلاس به سبک PHP یا C# وجود ندارد.
آبجکت سفارش در PHP
final class Order {
public function __construct(public int $id, public int $total) {}
public function isLarge(): bool { return $this->total > 1000000; }
}
$order = new Order(42, 1500000);
echo $order->isLarge();
آبجکت در Python
class Order:
def __init__(self, order_id, total):
self.id, self.total = order_id, total
def is_large(self):
return self.total > 1_000_000
order = Order(42, 1_500_000)
رفتار مشابه با Struct در Go
type Order struct { ID int; Total int }
func (o Order) IsLarge() bool { return o.Total > 1000000 }
order := Order{ID: 42, Total: 1500000}
آبجکت در C# و ASP.NET Core
public sealed class Order {
public int Id { get; init; }
public decimal Total { get; init; }
public bool IsLarge() => Total > 1_000_000m;
}
var order = new Order { Id = 42, Total = 1_500_000m };
نکته مفهومی
آبجکت با ردیف دیتابیس یکسان نیست. ORM میتواند رکورد را به آبجکت تبدیل کند، ولی هویت و چرخه عمر آبجکت در حافظه با رکورد ذخیرهشده تفاوت دارد.
مقاله بهبود کار با آبجکتها در PHP و اصطلاحات کلاس و برنامهنویسی آبجکتگرا را هم بخوانید.