What is the difference between loose coupling and tight coupling in the object oriented paradigm?

Tight coupling is when a group of classes are highly dependent on one another. This scenario arises when a class assumes too many responsibilities, or when one concern is spread over many classes rather than having its own class. Loose coupling is achieved by means of a design that promotes single-responsibility and separation of concerns. … Read more

Use of alloc init instead of new

There are a bunch of reasons here: http://macresearch.org/difference-between-alloc-init-and-new Some selected ones are: new doesn’t support custom initializers (like initWithString) alloc-init is more explicit than new General opinion seems to be that you should use whatever you’re comfortable with.

Polymorphism vs Overriding vs Overloading

The clearest way to express polymorphism is via an abstract base class (or interface) public abstract class Human{ … public abstract void goPee(); } This class is abstract because the goPee() method is not definable for Humans. It is only definable for the subclasses Male and Female. Also, Human is an abstract concept — You … Read more

When should you use ‘friend’ in C++?

Firstly (IMO) don’t listen to people who say friend is not useful. It IS useful. In many situations you will have objects with data or functionality that are not intended to be publicly available. This is particularly true of large codebases with many authors who may only be superficially familiar with different areas. There ARE … Read more

What’s wrong with overridable method calls in constructors?

On invoking overridable method from constructors Simply put, this is wrong because it unnecessarily opens up possibilities to MANY bugs. When the @Override is invoked, the state of the object may be inconsistent and/or incomplete. A quote from Effective Java 2nd Edition, Item 17: Design and document for inheritance, or else prohibit it: There are … Read more

Constructors in JavaScript objects

Using prototypes: function Box(color) // Constructor { this.color = color; } Box.prototype.getColor = function() { return this.color; }; Hiding “color” (somewhat resembles a private member variable): function Box(col) { var color = col; this.getColor = function() { return color; }; } Usage: var blueBox = new Box(“blue”); alert(blueBox.getColor()); // will alert blue var greenBox = … Read more

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)