14.3. The Third Store

After Tim and I delivered to Sam the release containing the changes accommodating a second store, he gave me a call. "Well, I've got even better news," he said.

"The second store has been successful, so I'm thinking about expanding into either Canada or Mexico. How much of an effort will be required to make that change?"

"Are you talking Cozumel?" I asked.

"Well, I was thinking about that or Whistler. It'd be tough to have to go on a business trip to check out how the stores were doing," he replied.

"I think these systems will need a developer to install them," I stated.

"Only if it comes out of your pocketbook," he answered.

14.3.1. Currency Flexibility

If Sam picks Whistler (in British Columbia), Tim and I will not have to worry about translating the program into another language. We might even get away without any changes, since Canadians use dollars, albeit different ones from the U.S.

For an initial examination, we looked at all the places where the Dollar class is used. Since we have the separate class (and have not defined it as a double), it is easy to determine which attributes or variables represent dollars. We could add a couple of classes such as CandianDollar and MexicanPeso. However, that does not feel right. This sounds like a place to start adding some flexibility ("More Is Sometimes Less"). As long as we are going to add two variations, we might as well be prepared for more.

Tim and I change the Dollar class into a Money class. That ...

Get Prefactoring now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.