فرض کنید در مبدا یکی از خطوط مترو هستید و وظیفه دارید به دیگران سرویس مشخصی بدهید. این سرویس از این قرار هست که مردم نام یک ایستگاه رو به شما میگویند و از شما فاصله تا آن ایستگاه را میخواهند. نکته مهم: ممکن است ایستگاهی با نام خواسته شده وجود نداشته باشد.
سوال: اگه بخواهیم متدی برای انجام این وظیفه بنویسیم، خروجی متد رو از چه نوعی درنظر بگیریم؟ البته چالش اصلی در رابطه با نحوهی برخورد ما با موقعیتهاییست که ایستگاهی با نام خواستهشده وجود ندارد.
قدیمیترین روش، برگرداندن منفی یک به ازای درخواستهایی که ایستگاه مورد نظر وجود ندارد.
روش دیگر استفاده از کلاس Optional هست؛ کلاسی که از جاوای هشت به این زبان اضافه شده.
ترجیح من استفاده از روش دوم هست. چرا؟ چون وقتی کسی از بدنه متد شما اطلاعی نداره، متوجه نمیشه شما به ازای ایستگاههای یافتنشده، منفی یک برمیگردونید و استفاده ازش ممکنه باعث خطاهای منطقی در برنامه بشه. اما استفاده از کلاس Optional خواننده (کاربر) رو به فکر وا میداره که ممکن است در موقعیتهایی خروجی مقدار نداشتهباشد.
هدف من از نوشتن این مطلب یادآوری دو نکته زیر بود: