A class should have only one reason to change.
It means a class should have only one task to perform.
This means that if a class is a data container, like a Book class or a Student class, and it has some fields regarding that entity, it should change only when we change the data model.
Importance of SRP:
- Many different teams can work on the same project and edit the same class for different reasons, this could lead to incompatible modules.
- It makes version control easier. For example, say we have a persistence class that handles database operations, and we see a change in that file in the GitHub commits.
- Merge conflicts are another example. They appear when different teams change the same file. But if the SRP is followed, fewer conflicts will appear – files will have a single reason to change, and conflicts that do exist will be easier to resolve.
Example while SRP is importance
We will take the example of bookstore invoice program. Where we did some common mistakes and that violate the Single Responsibility Principle.
This is a simple book class with some fields.
class Book {
private:
String name;
String authorName;
int price;
public:
Book(String name, String authorName, int price) {
this.name = name;
this.authorName = authorName;
this.price = price;
}
}
This is a invoice class which will contain the logic for creating the invoice and calculating the total price.
public class Invoice {
private:
Book book;
int quantity;
double total;
public:
Invoice(Book book, int quantity) {
this.book = book;
this.quantity = quantity;
this.total = this.calculateTotal();
}
double calculateTotal() {
double price = (book.price * this.quantity);
return price;
}
void printInvoice() {
cout << quantity << "x " << book.name << " " book.price << "$";
System.out.println("Total: " + total);
}
void saveToFile(String filename) {
// Creates a file with given name and writes the invoice
}
}
This invoice class contains:
- calculateTotal method, which calculates the total price
- printInvoice method, that should print the invoice to console
- saveToFile method, responsible for writing the invoice to a file
This class violates the Single Responsibility Principle in multiple ways.
- First violation : printInvoice method, which contains our printing logic. The SRP states that our class should only have a single reason to change, and that reason should be a change in the invoice calculation for our class.
- Next violation : saveToFile method. It is also an extremely common mistake to mix persistence logic with business logic. Currently this function is writing to a file. But in future, it could be saving to a database, making an API call, or other stuff related to persistence.
To fix these violation :
We can create new classes for our printing and persistence logic so we will no longer need to modify the invoice class for those purposes.
We create 2 classes, InvoicePrinter and InvoicePersistence, and move the methods.
public class InvoicePrinter {
private:
Invoice invoice;
public:
InvoicePrinter(Invoice invoice) {
this.invoice = invoice;
}
void print() {
cout << invoice.quantity << "x " << invoice.book.name << " " << invoice.book.price << " $";
cout << "Total: " + invoice.total + " $";
}
}
public class InvoicePersistence {
Invoice invoice;
public:
InvoicePersistence(Invoice invoice) {
this.invoice = invoice;
}
void saveToFile(String filename) {
// Creates a file with given name and writes the invoice
}
}
Now our class structure obeys the Single Responsibility Principle and every class is responsible for one aspect of our application.
Cool website!
My name’s Eric, and I just found your site – thecodepathshala.com – while surfing the net. You showed up at the top of the search results, so I checked you out. Looks like what you’re doing is pretty cool.
But if you don’t mind me asking – after someone like me stumbles across thecodepathshala.com, what usually happens?
Is your site generating leads for your business?
I’m guessing some, but I also bet you’d like more… studies show that 7 out 10 who land on a site wind up leaving without a trace.
Not good.
Here’s a thought – what if there was an easy way for every visitor to “raise their hand” to get a phone call from you INSTANTLY… the second they hit your site and said, “call me now.”
You can –
Talk With Web Visitor is a software widget that’s works on your site, ready to capture any visitor’s Name, Email address and Phone Number. It lets you know IMMEDIATELY – so that you can talk to that lead while they’re literally looking over your site.
CLICK HERE https://jumboleadmagnet.com to try out a Live Demo with Talk With Web Visitor now to see exactly how it works.
Time is money when it comes to connecting with leads – the difference between contacting someone within 5 minutes versus 30 minutes later can be huge – like 100 times better!
That’s why we built out our new SMS Text With Lead feature… because once you’ve captured the visitor’s phone number, you can automatically start a text message (SMS) conversation.
Think about the possibilities – even if you don’t close a deal then and there, you can follow up with text messages for new offers, content links, even just “how you doing?” notes to build a relationship.
Wouldn’t that be cool?
CLICK HERE https://jumboleadmagnet.com to discover what Talk With Web Visitor can do for your business.
You could be converting up to 100X more leads today!
Eric
PS: Talk With Web Visitor offers a FREE 14 days trial – and it even includes International Long Distance Calling.
You have customers waiting to talk with you right now… don’t keep them waiting.
CLICK HERE https://jumboleadmagnet.com to try Talk With Web Visitor now.
If you’d like to unsubscribe click here http://jumboleadmagnet.com/unsubscribe.aspx?d=thecodepathshala.com
My name’s Eric and I just found your site thecodepathshala.com.
It’s got a lot going for it, but here’s an idea to make it even MORE effective.
Talk With Web Visitor – CLICK HERE https://jumboleadmagnet.com for a live demo now.
Talk With Web Visitor is a software widget that’s works on your site, ready to capture any visitor’s Name, Email address and Phone Number. It signals you the moment they let you know they’re interested – so that you can talk to that lead while they’re literally looking over your site.
And once you’ve captured their phone number, with our new SMS Text With Lead feature, you can automatically start a text (SMS) conversation… and if they don’t take you up on your offer then, you can follow up with text messages for new offers, content links, even just “how you doing?” notes to build a relationship.
CLICK HERE https://jumboleadmagnet.com to discover what Talk With Web Visitor can do for your business.
The difference between contacting someone within 5 minutes versus a half-hour means you could be converting up to 100X more leads today!
Eric
PS: Studies show that 70% of a site’s visitors disappear and are gone forever after just a moment. Don’t keep losing them.
Talk With Web Visitor offers a FREE 14 days trial – and it even includes International Long Distance Calling.
You have customers waiting to talk with you right now… don’t keep them waiting.
CLICK HERE https://jumboleadmagnet.com to try Talk With Web Visitor now.
If you’d like to unsubscribe click here http://jumboleadmagnet.com/unsubscribe.aspx?d=thecodepathshala.com
Hello, my name’s Eric and I just ran across your website at thecodepathshala.com…
I found it after a quick search, so your SEO’s working out…
Content looks pretty good…
One thing’s missing though…
A QUICK, EASY way to connect with you NOW.
Because studies show that a web lead like me will only hang out a few seconds – 7 out of 10 disappear almost instantly, Surf Surf Surf… then gone forever.
I have the solution:
Talk With Web Visitor is a software widget that’s works on your site, ready to capture any visitor’s Name, Email address and Phone Number. You’ll know immediately they’re interested and you can call them directly to TALK with them – literally while they’re still on the web looking at your site.
CLICK HERE https://jumboleadmagnet.com to try out a Live Demo with Talk With Web Visitor now to see exactly how it works and even give it a try… it could be huge for your business.
Plus, now that you’ve got that phone number, with our new SMS Text With Lead feature, you can automatically start a text (SMS) conversation pronto… which is so powerful, because connecting with someone within the first 5 minutes is 100 times more effective than waiting 30 minutes or more later.
The new text messaging feature lets you follow up regularly with new offers, content links, even just follow up notes to build a relationship.
Everything I’ve just described is extremely simple to implement, cost-effective, and profitable.
CLICK HERE https://jumboleadmagnet.com to discover what Talk With Web Visitor can do for your business, potentially converting up to 100X more eyeballs into leads today!
Eric
PS: Talk With Web Visitor offers a FREE 14 days trial – and it even includes International Long Distance Calling.
You have customers waiting to talk with you right now… don’t keep them waiting.
CLICK HERE https://jumboleadmagnet.com to try Talk With Web Visitor now.
If you’d like to unsubscribe click here http://jumboleadmagnet.com/unsubscribe.aspx?d=thecodepathshala.com
Hey, my name’s Eric and for just a second, imagine this…
– Someone does a search and winds up at thecodepathshala.com.
– They hang out for a minute to check it out. “I’m interested… but… maybe…”
– And then they hit the back button and check out the other search results instead.
– Bottom line – you got an eyeball, but nothing else to show for it.
– There they go.
This isn’t really your fault – it happens a LOT – studies show 7 out of 10 visitors to any site disappear without leaving a trace.
But you CAN fix that.
Talk With Web Visitor is a software widget that’s works on your site, ready to capture any visitor’s Name, Email address and Phone Number. It lets you know right then and there – enabling you to call that lead while they’re literally looking over your site.
CLICK HERE https://jumboleadmagnet.com to try out a Live Demo with Talk With Web Visitor now to see exactly how it works.
Time is money when it comes to connecting with leads – the difference between contacting someone within 5 minutes versus 30 minutes later can be huge – like 100 times better!
Plus, now that you have their phone number, with our new SMS Text With Lead feature you can automatically start a text (SMS) conversation… so even if you don’t close a deal then, you can follow up with text messages for new offers, content links, even just “how you doing?” notes to build a relationship.
Strong stuff.
CLICK HERE https://jumboleadmagnet.com to discover what Talk With Web Visitor can do for your business.
You could be converting up to 100X more leads today!
Eric
PS: Talk With Web Visitor offers a FREE 14 days trial – and it even includes International Long Distance Calling.
You have customers waiting to talk with you right now… don’t keep them waiting.
CLICK HERE https://jumboleadmagnet.com to try Talk With Web Visitor now.
If you’d like to unsubscribe click here http://jumboleadmagnet.com/unsubscribe.aspx?d=thecodepathshala.com
Good day,
My name is Eric and unlike a lot of emails you might get, I wanted to instead provide you with a word of encouragement – Congratulations
What for?
Part of my job is to check out websites and the work you’ve done with thecodepathshala.com definitely stands out.
It’s clear you took building a website seriously and made a real investment of time and resources into making it top quality.
There is, however, a catch… more accurately, a question…
So when someone like me happens to find your site – maybe at the top of the search results (nice job BTW) or just through a random link, how do you know?
More importantly, how do you make a connection with that person?
Studies show that 7 out of 10 visitors don’t stick around – they’re there one second and then gone with the wind.
Here’s a way to create INSTANT engagement that you may not have known about…
Talk With Web Visitor is a software widget that’s works on your site, ready to capture any visitor’s Name, Email address and Phone Number. It lets you know INSTANTLY that they’re interested – so that you can talk to that lead while they’re literally checking out thecodepathshala.com.
CLICK HERE https://jumboleadmagnet.com to try out a Live Demo with Talk With Web Visitor now to see exactly how it works.
It could be a game-changer for your business – and it gets even better… once you’ve captured their phone number, with our new SMS Text With Lead feature, you can automatically start a text (SMS) conversation – immediately (and there’s literally a 100X difference between contacting someone within 5 minutes versus 30 minutes.)
Plus then, even if you don’t close a deal right away, you can connect later on with text messages for new offers, content links, even just follow up notes to build a relationship.
Everything I’ve just described is simple, easy, and effective.
CLICK HERE https://jumboleadmagnet.com to discover what Talk With Web Visitor can do for your business.
You could be converting up to 100X more leads today!
Eric
PS: Talk With Web Visitor offers a FREE 14 days trial – and it even includes International Long Distance Calling.
You have customers waiting to talk with you right now… don’t keep them waiting.
CLICK HERE https://jumboleadmagnet.com to try Talk With Web Visitor now.
If you’d like to unsubscribe click here http://jumboleadmagnet.com/unsubscribe.aspx?d=thecodepathshala.com
I was pretty pleased to discover this great site. I want to to thank you for ones time due to this fantastic read!! I definitely appreciated every part of it and I have you book marked to look at new stuff on your web site.
I was very happy to discover this great site. I need to to thank you for your time for this particularly wonderful read!! I definitely liked every part of it and I have you bookmarked to check out new information on your blog.
Good day! I simply want to offer you a big thumbs up for the excellent info youve got right here on this post. Ill be coming back to your site for more soon.
Hi, my name is Eric and I’m betting you’d like your website thecodepathshala.com to generate more leads.
Here’s how:
Talk With Web Visitor is a software widget that’s works on your site, ready to capture any visitor’s Name, Email address and Phone Number. It signals you as soon as they say they’re interested – so that you can talk to that lead while they’re still there at thecodepathshala.com.
Talk With Web Visitor – CLICK HERE https://boostleadgeneration.com for a live demo now.
And now that you’ve got their phone number, our new SMS Text With Lead feature enables you to start a text (SMS) conversation – answer questions, provide more info, and close a deal that way.
If they don’t take you up on your offer then, just follow up with text messages for new offers, content links, even just “how you doing?” notes to build a relationship.
CLICK HERE https://boostleadgeneration.com to discover what Talk With Web Visitor can do for your business.
The difference between contacting someone within 5 minutes versus a half-hour means you could be converting up to 100X more leads today!
Try Talk With Web Visitor and get more leads now.
Eric
PS: The studies show 7 out of 10 visitors don’t hang around – you can’t afford to lose them!
Talk With Web Visitor offers a FREE 14 days trial – and it even includes International Long Distance Calling.
You have customers waiting to talk with you right now… don’t keep them waiting.
CLICK HERE https://boostleadgeneration.com to try Talk With Web Visitor now.
If you’d like to unsubscribe click here http://boostleadgeneration.com/unsubscribe.aspx?d=thecodepathshala.com
Cool website!
My name’s Eric, and I just found your site – thecodepathshala.com – while surfing the net. You showed up at the top of the search results, so I checked you out. Looks like what you’re doing is pretty cool.
But if you don’t mind me asking – after someone like me stumbles across thecodepathshala.com, what usually happens?
Is your site generating leads for your business?
I’m guessing some, but I also bet you’d like more… studies show that 7 out 10 who land on a site wind up leaving without a trace.
Not good.
Here’s a thought – what if there was an easy way for every visitor to “raise their hand” to get a phone call from you INSTANTLY… the second they hit your site and said, “call me now.”
You can –
Talk With Web Visitor is a software widget that’s works on your site, ready to capture any visitor’s Name, Email address and Phone Number. It lets you know IMMEDIATELY – so that you can talk to that lead while they’re literally looking over your site.
CLICK HERE https://boostleadgeneration.com to try out a Live Demo with Talk With Web Visitor now to see exactly how it works.
Time is money when it comes to connecting with leads – the difference between contacting someone within 5 minutes versus 30 minutes later can be huge – like 100 times better!
That’s why we built out our new SMS Text With Lead feature… because once you’ve captured the visitor’s phone number, you can automatically start a text message (SMS) conversation.
Think about the possibilities – even if you don’t close a deal then and there, you can follow up with text messages for new offers, content links, even just “how you doing?” notes to build a relationship.
Wouldn’t that be cool?
CLICK HERE https://boostleadgeneration.com to discover what Talk With Web Visitor can do for your business.
You could be converting up to 100X more leads today!
Eric
PS: Talk With Web Visitor offers a FREE 14 days trial – and it even includes International Long Distance Calling.
You have customers waiting to talk with you right now… don’t keep them waiting.
CLICK HERE https://boostleadgeneration.com to try Talk With Web Visitor now.
If you’d like to unsubscribe click here http://boostleadgeneration.com/unsubscribe.aspx?d=thecodepathshala.com
Good day,
My name is Eric and unlike a lot of emails you might get, I wanted to instead provide you with a word of encouragement – Congratulations
What for?
Part of my job is to check out websites and the work you’ve done with thecodepathshala.com definitely stands out.
It’s clear you took building a website seriously and made a real investment of time and resources into making it top quality.
There is, however, a catch… more accurately, a question…
So when someone like me happens to find your site – maybe at the top of the search results (nice job BTW) or just through a random link, how do you know?
More importantly, how do you make a connection with that person?
Studies show that 7 out of 10 visitors don’t stick around – they’re there one second and then gone with the wind.
Here’s a way to create INSTANT engagement that you may not have known about…
Talk With Web Visitor is a software widget that’s works on your site, ready to capture any visitor’s Name, Email address and Phone Number. It lets you know INSTANTLY that they’re interested – so that you can talk to that lead while they’re literally checking out thecodepathshala.com.
CLICK HERE https://boostleadgeneration.com to try out a Live Demo with Talk With Web Visitor now to see exactly how it works.
It could be a game-changer for your business – and it gets even better… once you’ve captured their phone number, with our new SMS Text With Lead feature, you can automatically start a text (SMS) conversation – immediately (and there’s literally a 100X difference between contacting someone within 5 minutes versus 30 minutes.)
Plus then, even if you don’t close a deal right away, you can connect later on with text messages for new offers, content links, even just follow up notes to build a relationship.
Everything I’ve just described is simple, easy, and effective.
CLICK HERE https://boostleadgeneration.com to discover what Talk With Web Visitor can do for your business.
You could be converting up to 100X more leads today!
Eric
PS: Talk With Web Visitor offers a FREE 14 days trial – and it even includes International Long Distance Calling.
You have customers waiting to talk with you right now… don’t keep them waiting.
CLICK HERE https://boostleadgeneration.com to try Talk With Web Visitor now.
If you’d like to unsubscribe click here http://boostleadgeneration.com/unsubscribe.aspx?d=thecodepathshala.com
http://slkjfdf.net/ – Ibuhoye Utixur xch.aylf.thecodepathshala.com.lhk.fr http://slkjfdf.net/
http://slkjfdf.net/ – Ovivigo Ikoworei sax.fgps.thecodepathshala.com.pvx.rp http://slkjfdf.net/
Hey, this is Eric and I ran across thecodepathshala.com a few minutes ago.
Looks great… but now what?
By that I mean, when someone like me finds your website – either through Search or just bouncing around – what happens next? Do you get a lot of leads from your site, or at least enough to make you happy?
Honestly, most business websites fall a bit short when it comes to generating paying customers. Studies show that 70% of a site’s visitors disappear and are gone forever after just a moment.
Here’s an idea…
How about making it really EASY for every visitor who shows up to get a personal phone call you as soon as they hit your site…
You can –
Talk With Web Visitor is a software widget that’s works on your site, ready to capture any visitor’s Name, Email address and Phone Number. It signals you the moment they let you know they’re interested – so that you can talk to that lead while they’re literally looking over your site.
CLICK HERE https://boostleadgeneration.com to try out a Live Demo with Talk With Web Visitor now to see exactly how it works.
You’ll be amazed – the difference between contacting someone within 5 minutes versus a half-hour or more later could increase your results 100-fold.
It gets even better… once you’ve captured their phone number, with our new SMS Text With Lead feature, you can automatically start a text (SMS) conversation.
That way, even if you don’t close a deal right away, you can follow up with text messages for new offers, content links, even just “how you doing?” notes to build a relationship.
Pretty sweet – AND effective.
CLICK HERE https://boostleadgeneration.com to discover what Talk With Web Visitor can do for your business.
You could be converting up to 100X more leads today!
Eric
PS: Talk With Web Visitor offers a FREE 14 days trial – and it even includes International Long Distance Calling.
You have customers waiting to talk with you right now… don’t keep them waiting.
CLICK HERE https://boostleadgeneration.com to try Talk With Web Visitor now.
If you’d like to unsubscribe click here http://boostleadgeneration.com/unsubscribe.aspx?d=thecodepathshala.com