Sunteți pe pagina 1din 6

Objectives and strategy complements one another but are distinct.

Using example/s demonstrate this phenomenon

Objectives state what is to be achieved and cover the range of desired outcomes to achieve a
goal

An objective is an aim or a goal intended to be attained. It is believed to be attainable. It is also


known as object. When someone is said to be objective, that person is non-judgmental and free
from any sort of personal bias whatsoever. An objective person is based purely on phenomena
that has actually been observed. It is not distorted by emotions.

An objective serves as or indicates the object of a verb or of certain prepositions. They are used
for certain specific purposes. Objective people tend to perceive things as they observe them
and then emphasise them or express them in the clearest manner possible.

An objective account of something is made only when it is not distorted or ambiguous, when
there are no personal feelings involved, when the matter is one hundred per cent truthful and
not fictitious, and is not open to several different interpretations (most things are, but an
objective description of something is crystal clear and there is no chance of doubts or gaping
holes creeping in, which have to be filled in later by others.)

An objective is a description of the end result you want to achieve (the "what").

Objectives are typically more meaningful if they are SMART


Specific (from where, to where)
Measurable (how will we know when the objective has been met?)
Ambitious but achievable (otherwise, why bother)
Realistic (!)
Timed (by when)
Objective-C: the More Flexible C++
Sep 13, 2002 By Armin Roehrl and Stefan Schmiedl
in

• Software

An introduction to Objective-C for programmers familiar with C++ or any other OOP language.

It is a surprising fact that anyone studying GNUstep or the Cocoa Framework will notice they are
nearly identical to the NEXTSTEP APIs that were defined ten years ago. A decade is an eternity
in the software industry. If the framework (and its programming language--Objective C) came
through untouched these past ten years, there must be something special about it. And Objective-
C has done more than survive; some famous games including Quake and NuclearStrike were
developed using Objective-C.

Why Should I Learn Objective-C?

Objective-C gives you the full power of a true object-oriented language with exactly one syntax
addition to C and, unlike C++, about a dozen additional keywords.

Since Apple purchase Next for $400 million and Mac OS X ships with Objective-C, recycling
NEXTSTEP (later called OpenStep), as well as the fact that GNUstep is delivering the rock-solid
window-manager Window Maker, Objective-C is (rightly) getting more attention because it is
more flexible than C++ at the cost of being slower.

In reality, Objective-C is Object C and is as close to Smalltalk as a compiled language can be.
This is no surprise as Brad J. Cox added object-oriented, Smalltalk-80-based extensions to the C
language.

So objective-C is a hybrid between Smalltalk and C. A string can be represented as a `char *' or
as an object, whereas in Smalltalk everything is an object. As with Java (int, double,.. are no
objects) this leads to faster performance.

In contrast, C++ traditionally is associated with the Simula 67 school of object-oriented


programming. In C++, the static type of an object fixes what messages it can receive. In
Objective-C the dynamic type of an object determines what messages it can receive. The Simula
67 format allows problems to be detected at compile time. The Smalltalk approach delays typing
until runtime and therefore is more flexible.

A GNU version was written by Dennis Gladding in 1992 and then Richard Stallman took over
the development. The current GNU version is derived from the version written by Kresten
Thorup when he was a still a university student in 1993. He ported that version to the NeXTcube
and joined NeXT.
Apple chose Objective-C for Cocoa, as NEXTSTEP was based on Objective-C. But, even if they
had written it from scratch, they might have decided to use Objective-C because it is object-
oriented, which is undoubtedly a must for big software projects. It extends the standard ANSI C,
so that existing C programs can be adapted to use the frameworks, and programmers can chose
when to stick to procedural programming and when to go the object-oriented way. C was
intended to be a good language for system programming. C is fine as it allows the programmer to
do exactly what she wants, all the way down to the hardware. C also keeps the gold old pointers,
which can be used for efficient code.

Objective-C is simple, unambiguous and easy to learn. But most of all, it is the most dynamic
language of all object-oriented languages based on C. Its dynamic late binding offers flexibility
and power. Messages are not constrained by either the class of the receiver or the method
selector, allowing rapid change and offering access to information about running applications.

The following is a short introduction to OOP in Objective-C, starting with the basics. Procedural
programs consist of data and operations on data. OOP works at a higher level by grouping data
into units, which are called objects. Several objects combined and their interactions form a
program.

Interface and Implementation

Abstraction is at the root of all understanding; it helps us capture the bigger image as the details
are hidden. Object-Oriented Programming and the Objective-C Language (see Resources) shows
the image of a clock cut half-open: what we normally see (the external view) is the interface, and
the implementation (the internal workings) is hidden inside.

@interface declares a new class. It indicates the name of the class and its superclass, the
protocols adhered to, the layout of the instance variables and declares the methods implemented
by this class. Traditionally a class interface is stored in a file called <classname>.h.

Only externally visible methods are listed in the interface section. However, there are visibility
keywords for instance variables:

• @private: the instance variable is accessible only within the class that declares it.
• @protected: the instance variable is accessible within the class that declares it and with
the class that inherits it.
• @public: the instance variable is accessible everywhere.
• @implementation' defines a class. The implementation is a collection of method
definitions stored in a file called <classname>.m.

Objective-C: the More Flexible C++


Sep 13, 2002 By Armin Roehrl and Stefan Schmiedl
in
• Software

An introduction to Objective-C for programmers familiar with C++ or any other OOP language.
Messages

The only way to tell an object to do something is to send it a message. The well known metaphor
of objects as active actors can be used. An actor communicates through a message to another to
request that she do something. The receiving object is called the "receiver" of that message. The
receiver will determine the concrete behavior. It will make a big difference if you send "I love
you" to Catherine instead of Katia. Different receivers cause different implementations.

[receiver message];
[receiver message: arg1];

Arguments are used after colon-terminated message selectors.

If a message is declared as -message, it can be sent to objects. A leading plus sign (+) means that
the message can be sent to class objects. The default return type for methods is "id". If a method
has nothing useful to return, it returns "self", which is a pointer to the object to which the
message was sent (similar to "this" in C++).

By implementing the method -doesNotUnderstand:

-doesNotUnderstand: msg { [msg sentTo:delegate]; }

an object can forward messages to another object ("delegate"), including messages that return C
structs, doubles, chars and so on.

Classes and Inheritance

A class is used to produce similar objects, called instances of the class. Classes are used to
encapsulate data and methods that belong together. Methods are the operations that Objective-C
applies to data and are identified by their message selectors.

Objective-C supports polymorphism: several classes can have a method with the same name.

Inheritance is used for code reuse. Classes inherit variables and methods from a higher-level
class called a super-class. A class that inherits some or all of the methods and variables is a sub-
class. In Objective-C, all classes are a sub-class of a primal super-class called Object.

Dynamism

Compile-time and link-time constraints are limiting because they force issues to be decided from
information found in the programmer's source code, rather than from information obtained by the
running program. Such static languages usually refuse to introduce new modules or new types
during runtime. Objective-C makes as many decisions as possible at runtime:
• Dynamic typing: waiting until runtime to determine the class of an object.
• Dynamic binding: determining at runtime what method to invoke--no need to bother
about what is done when. This allows it to change the components of a program
incrementally.
• Dynamic loading: program segments are not loaded into memory until they are actually
used, thereby minimizing the system resources required for an instance of a program.

If your program offers a framework for others to use at runtime, you can discover what they have
implemented and load it at runtime as needed.

Objective-C programs are structured through inheritance (how objects relate by type) and the
pattern of message passing (explains how program works).

Objects

As the name implies, object-oriented programs are built around objects. Objects are the root of
the Objective-C family tree.

id is an object identifier that is a distinct data type. It is a pointer to an object (in reality a pointer
to an object's data--its instance variables). The actual class of the Object does not matter because
Objective-C does runtime binding.

nil is the null object. The id of nil is 0. Other basic types of Objective-C are defined in the header
file, objc/Objc.h.

Every object also carries an is an instance variable that identifies the object's class (what kind of
object is it?). This allows objects to be typed dynamically at runtime. isa also allows objects to
introspect themselves so they can find out what methods they have.

A strategy describes the method by which an objective will be reached (the "how").

Strategy - as opposed to plans or tactics - usually implies a grand, overarching view of


how all the tools and levers available will be deployed to work together.
Strategy A course of action to achieve targets

S-ar putea să vă placă și