I would not modify the workings of \cref and friends directly. Instead, I would create a new macro called \pcref -- short for "parenthetic \cref", I suppose -- as follows:
\newcommand\pcref[1]{(\cref{#1})}
As you can probably guess, \pcref places round parentheses around the output of \cref. No need for lots of separate \crefformat directives. This approach preserves access to the standard definition of \cref, should the need to do so arise.
For the following screenshot, I loaded the hyperref package and specified the cleveref option nameinlink, in order to make visible what is, and is not, produced by \cref.

\documentclass{article}
\usepackage[colorlinks,allcolors=blue]{hyperref} % optional
\usepackage[noabbrev,nameinlink]{cleveref}
\newcommand\pcref[1]{(\cref{#1})}
\begin{document}
\begin{figure}[t!] \caption{foo}\label{fig:foo}\end{figure}
\begin{figure}[h!] \caption{bar}\label{fig:bar}\end{figure}
\begin{table}[h!] \caption{foo}\label{tab:foo}\end{table}
\dots\ \pcref{fig:foo}, \pcref{fig:foo,fig:bar}, \pcref{tab:foo,fig:bar}, \dots
\bigskip vs.
\bigskip
\dots\ \cref{fig:foo}, \cref{fig:foo,fig:bar}, \cref{tab:foo,fig:bar}, \dots
\end{document}
\crefon itself. – Apr 10 '19 at 10:23\creffor parenthesis-less refs. Is there any good reason against? – August Janse Apr 10 '19 at 12:06\makeatletter \let\my@command\cref \renewcommand\cref[1]{[\my@command{#1}]} \makeatother– Apr 10 '19 at 12:33