Tôi đang viết một trình tạo ID duy nhất có các chiến lược khác nhau để tạo Id, là duy nhất thông qua một ngày hoặc một tuần hoặc một tháng. Tôi không muốn tạo phân cấp các lớp với cơ chế chức năng ảoBạn có nên tạo mẫu dựa trên enums không?
Làm điều gì đó giống như đoạn mã dưới đây, một ý tưởng hay? Bất kỳ đề xuất nào?
enum Duration { Day, Week, Month };
template <Duration d>
class IDGenerator
{
generateId();
}
Điều đó sẽ hoạt động hoàn toàn tốt, các mệnh đề 'if' tương ứng sẽ được tối ưu hoàn toàn trong trường hợp này. Do lưu ý rằng nó không phải là 100% mạnh mẽ như chuyên lớp mẫu trên một loại (mặc dù nhiều/hầu hết mọi người sẽ thích "ít quyền lực" ở đây). – Damon
Xác định "ý tưởng hay". –