I am working on the below use cases.
Now I can design it in 2 ways
As per SRP (Single Responsibility principle) as in SOLID principles, I feel we have 3 responsibilities which are creating User, deleting User and Updating user and so we need 3 classes as mentioned above in point 2.
Please suggest what should be the good design - Design #1 or Design # 2.
The problem with defining what a responsibility is, is well known. Robert Martin suggests to interpret it like this:
The Single Responsibility Principle (SRP) states that each software module should have one and only one reason to change
and also (the same link):
When you write a software module, you want to make sure that when changes are requested, those changes can only originate from a single person, or rather, a single tightly coupled group of people representing a single narrowly defined business function.
In your example, changes in business requirements will concern at most User entity, not how its being managed in terms of implementation details. The important point of view is what your application does for the people using it, not how does it do it. That's why I also recommend the first approach. The commonly used pattern for this is called The Repository.