Я искал приложение Android для ввода-вывода Google iosched link и увидел, что они используют в основном свои статические методы в своих классах helper/util. Тем не менее, я обнаружил, что многие люди не рекомендуют использовать статические методы в вспомогательных классах.Помощник класса лучший подход android
Предположим, что если у меня есть 3 действия, которые выполняют некоторую работу, например, показывая диалоговое окно или уведомление о необходимости, тогда мне нужно добавить один и тот же код во всех трех действиях. Что делать, если я пишу файлы из 10 различных видов деятельности. Не использует ли вспомогательный класс со статическим методом лучший подход, чем повторять один и тот же код снова и снова? если нет, то какой лучший подход.
public class NotificationHelper {
/**
* create notification
* @param context activity context
* @param title notification title
* @param contentText notification text
* @param mNotificationId notification id
*/
public static void setUpNotification(Context context, String title, String contentText, int mNotificationId) {
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context).setLargeIcon((BitmapFactory.decodeResource(context.getResources(),R.drawable.launcher)))
.setSmallIcon(R.drawable.ic_notif)
.setContentTitle(title)
.setContentText(contentText).setPriority(NotificationCompat.PRIORITY_MAX);
Intent resultIntent = new Intent(context, MainActivity.class);
PendingIntent resultPendingIntent =
PendingIntent.getActivity(
context,
0,
resultIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
mBuilder.setOngoing(true);
NotificationManager mNotificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(mNotificationId, mBuilder.build());
}
/**
* cancel notification
* @param ctx context
* @param notifyId id of notification to be cancelled
*/
public static void cancelNotification(Context ctx, int notifyId) {
NotificationManager nMgr = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
nMgr.cancel(notifyId);
}
}
Я согласен со всеми точками, отличными от 2, как правило, я считаю, что минимальный объем должен поддерживаться даже для полезных методов. Я предпочитаю начинать с 'package-private' и только раскрывать как' public', если это необходимо. –
@ Марк Кин, да, согласился .. добавит вашу точку. Я просто хотел сказать, чтобы разоблачить статические методы, и, сказав это, сделал шаг вперед и добавил публику. –
У меня есть база данных, которая считывает и записывает значения из разных мест. Должен ли я сделать свой метод статическим в классе-помощнике –