البرمجة

تجنب التكرار في if statements

عندما تبدأ في كتابة برنامج يتعامل مع الأوامر المختلفة، يمكن أن تصبح عملية فحص كل أمر باستخدام if statement مكررة متعبة ومملة. في جافا، يمكنك استخدام هيكل بيانات يسمى “Map” لتخزين الأوامر والوظائف المرتبطة بها. على سبيل المثال، يمكنك استخدام HashMap لتخزين الأوامر والفعل المرتبط بها. إليك كيفية تطبيق هذه الفكرة:

java
import java.util.HashMap; import java.util.Map; public class CommandProcessor { private Map commandMap; public CommandProcessor() { this.commandMap = new HashMap<>(); initializeCommands(); } private void initializeCommands() { commandMap.put("change category FOOD", new ChangeCategoryCommand()); commandMap.put("Sort by price FOOD", new SortByPriceCommand()); commandMap.put("logout", new LogoutCommand()); // Add more commands here } public void processCommand(String input) { Command command = commandMap.get(input); if (command != null) { command.execute(); } else { System.out.println("Invalid command"); } } public static void main(String[] args) { CommandProcessor commandProcessor = new CommandProcessor(); commandProcessor.processCommand("change category FOOD"); commandProcessor.processCommand("Sort by price FOOD"); commandProcessor.processCommand("logout"); commandProcessor.processCommand("invalid command"); } } interface Command { void execute(); } class ChangeCategoryCommand implements Command { @Override public void execute() { System.out.println("Executing ChangeCategoryCommand"); } } class SortByPriceCommand implements Command { @Override public void execute() { System.out.println("Executing SortByPriceCommand"); } } class LogoutCommand implements Command { @Override public void execute() { System.out.println("Executing LogoutCommand"); } }

في هذا المثال، يتم استخدام HashMap لتخزين الأوامر كمفتاح والفعل كقيمة. عند تلقي أمر من المستخدم، يتم فحص ما إذا كان الأمر موجودًا في الخريطة، وإذا كان الأمر صالحًا، يتم تنفيذ الفعل المرتبط به.

المزيد من المعلومات

بالطبع! يمكنك تحسين هذا الحل بإضافة بعض المزايا الإضافية. على سبيل المثال، يمكنك استخدام واجهة Function كبديل لواجهة Command لتقليل كمية الكود. هناك أيضًا العديد من الطرق لتحسين تصميم البرنامج وجعله أكثر مرونة، مثل استخدام تقنية Dependency Injection لتمكين إدارة الاعتمادات بسهولة واستبدال تنفيذ الأوامر بسهولة.

زر الذهاب إلى الأعلى