Shared coding conventions enable teams to collaborate more efficiently. While ``+++new++`` and a combination of ``+++alloc -init++`` are functionally equivalent, the latter is preferred. In addition to being more accepted in modern code, it also better represents a separation of concerns.


If ``+++new++`` is never invoked, then there is no need to override it, and any such methods become clutter in a class.


== Noncompliant Code Example

----
+ (id) new  // Noncompliant
{
  return [[self alloc] init];
}

MyClass *myC = [MyClass new];  // Noncompliant
----


== Compliant Solution

----
MyClass *myC = [[MyClass alloc] init];
----


