هنگام طراحی یک API ، استفاده از انواع عمومی که نشانگر هویت منبع هستند برای اجازه دادن به اعمال بر روی یک منبع آسان است. به عنوان مثالی در قطعه زیر ، از آن استفاده می کنیم بین المللی برای مشخص کردن شناسه قابل ذخیره نوعی را که کاربر رابط می خواهد برای بازیابی مقدار استفاده کند.
انتخاب 1
protocol StoredCollection {
associatedtype Storable: Codable
func fetch(id: Int) - Storable
}
این به تماس گیرنده اجازه می دهد هر شناسه تصادفی را درخواست کند: 5، 6، 99، 105. در ابتدا ، به نظر نمی رسد که این مسئله مشکلی باشد ، تمام کاری که ما باید انجام دهیم این است که یک ویرایش در رابط انجام دهیم تا نشان دهد در صورت عدم وجود شناسه ، مقدار اختیاری را برمی گردانیم.
protocol StoredCollection {
associatedtype Storable: Codable
func fetch(id: Int) - Storable?
}
حال ، بیایید معناشناسی ایجاد را به این مجموعه اضافه کنیم ، که می تواند به امکاناتی که در زیر ذکر شده منجر شود.
گزینه 2
//Option 1: Interface user specifies the id
protocol StoredCollection {
associatedtype Storable: Codable
func create(id: Int, value: Storable)
func fetch(id: Int) - Storable?
}
//Option 2: Interface user just provides the value
protocol StoredCollection {
associatedtype Storable: Codable
func create(value: Storable) - Int
func fetch(id: Int) - Storable?
}
به نظر من گزینه 2 ترجیح بیشتری دارد. این نشان می دهد که مسئولیت …