When designing an application, when do you know that your objects are tightly coupled? What are the symptomps of tightly coupled objects/codes?
Lets take two objects A & B:
For the sake of simplicity lets asume that A has the following properties
Name: String Age: Integer DateOfBirth: DateTime
B has the following method:
CreateInstanceOfA(string Name, Integer Age, Datetime DateOfBirth) and returns an instance of A with its values initialized to the method arguments.
Now, suppose you add a new property to A:
StateCode: string
Now you have a problem. Do you update the CreateInstanceOfA to include the new property? If so, you have to change the code everywhere it's referenced to include the new field. If your language of choice supports operator overloading you can add a new method. It may not break compilation, but you still have to update the code. Even worse, you would use the old method and would have to manually set the new property after creation.
Son A & B are really tightly coupled.
It's not the best example but it's a quick way of seeing the possible ramifications of a change in a design