Role based view for a module

Is it possible to create two views - list, detai, edit etc for the same module.

I want X user role to be able to list, see details, edit all fields.

I want user Y to be able to see a “limited” fields view.

I have seen some threads in which the custom code is added based on role or user, but that is not effecient.