Vous êtes sur la page 1sur 7

16/02/2016 Vocsabe,comcerteza,oqueOrientaoaObjetos?

ObjectPascalProgramming

Object Pascal Programming


Lista VIP | eBook Arquivo Contato Sobre

Voc sabe, com certeza, o que Orientao a


Objetos?
Dec 27, 2015
3 minute read

No pense que voc programa Orientado a Objetos s porque utiliza Classes,


Herana, Encapsulamento e, talvez, Polimorfismo.

Um pouco de Histria
Muitos programadores, ao menos uma vez na vida, j devem ter pesquisado o que
significa Orientao a Objetos, quando o termo foi cunhado e por quem.

H vrios sites hoje em dia contendo essas informaes, ento no vou replic-las
aqui bem, s pra lembrar rapidamente: o criador do termo foi Alan Kay, o mesmo
criador da linguagem Smalltalk uma linguagem puramente Orientada a Objetos

http://objectpascalprogramming.com/posts/oqueeorientacaoaobjetos/ 1/7
16/02/2016 Vocsabe,comcerteza,oqueOrientaoaObjetos?ObjectPascalProgramming

no entanto, mesmo antes do termo ter sido criado, ideias conceituais sobre
Orientao a Objetos j estavam sendo aplicadas na linguagem Simula 67 (1967).

Linguagens de programao foram desenhadas com base nesse paradigma; centenas


ou milhares de livros foram escritos; milhes de sites na Internet falam desse
assunto. Ento porque, aps todos esses anos, a maioria dos programadores ainda
no sabem o que programar Orientado a Objetos?

Um Objeto no um balde de Funes e Dados


Ok, tecnicamente ele um balde de funes e dados. Quando um objeto criado
ele possui uma estrutura de dados em memria; cada funo recebe um ponteiro
implcito para essa estrutura; as funes podem utilizar esses dados como se fossem
variveis locais basicamente isso.

Mas se voc no for um projetista de compiladores, pouco importa saber como um


Objeto gerenciado internamente pelo compilador muitos programadores Java
nem sabem o que um ponteiro :)

Ento funes e dados ganharam novos nomes: funes so chamadas de Mtodos e


dados so chamados de Atributos ou Propriedades.

Utilizar as palavras Mtodos e Atributos j um grande passo para entender o que


so Objetos, mas eu prefiro dizer que um Objeto tem Comportamento e Estado,
respectivamente.

E qual a diferena (terica) entre Mtodos vs Comportamentos e Atributos vs Estado?


Se voc executa sequencialmente os mtodos de um Objeto e/ou atualiza seus
atributos, voc utiliza Programao Procedural.

assunto para outro post explicar as diferenas sutis de nomenclatura, assim como
as afirmaes que fiz acima, mas se for possvel para voc apenas aceitar tais
definies por enquanto, continue lendo.

A orientao a objetos um modelo de anlise, projeto e


programao de sistemas de software baseado na composio e
interao entre diversas unidades de software chamadas de
objetos.

Wikipedia

Objetos podem ser compostos por outros Objetos e eles interagem entre si.

Funes so executadas. Objetos interagem entre si.

Nunca pensem em Objetos em termos de funes e dados. Nunca.

http://objectpascalprogramming.com/posts/oqueeorientacaoaobjetos/ 2/7
16/02/2016 Vocsabe,comcerteza,oqueOrientaoaObjetos?ObjectPascalProgramming

Para ns, de agora em diante, um Objeto representa uma entidade, criatura ou


qualquer coisa fora do contexto do programa.

Alguns dizem, tambm, que um Objeto representa uma entidade na vida real. A
definio est correta, porm pode gerar confuso, por exemplo:

1. Um cachorro uma entidade na vida real? Sim.


2. Uma pessoa uma entidade na vida real? Sim.
3. Um arquivo de computador uma entidade na vida real? Sim.
4. Um pixel uma entidade na vida real? Sim.

Se voc no notou diferena entre os exemplos, parabns. Mas se ficou em dvida a


respeito dos itens #3 e #4, tudo bem, muitos tem a mesma dvida. Por isso eu digo
que um Objeto qualquer coisa fora do contexto do programa. Definir como vida
real tambm est certo e tem a vantagem de ser mais rpido pra escrever

Os programadores no utilizam Orientao a Objetos


Estou afirmando com base na minha experincia pessoal com o mercado brasileiro,
livros e inmeros post lidos por mim no decorrer dos anos.

Voc pode entender isso como uma coisa boa ou ruim. Depende do ponto de vista.
Existe a Programao Funcional e muitas (grandes) empresas a utilizam.
Programao Funcional no tem nada haver com Orientao a Objetos e, tudo bem.

Mas, ateno. No pense que voc programa Orientado a Objetos s porque utiliza
Classes, Herana, Encapsulamento e, talvez, Polimorfismo. Esse a base, mas no
tudo.

No somos diferentes. Eu pensava que programava Orientado a Objetos por usar e


aplicar ou achar que estava aplicando esses conceitos bsicos da Orientao a
Objetos que nos ensinaram no meio acadmico. Mas no foi o bastante.

Esqueceram de nos ensinar como Pensar Orientado a Objetos.

Mas isso assunto para um prximo post.

Compartilhe

http://objectpascalprogramming.com/posts/oqueeorientacaoaobjetos/ 3/7
16/02/2016 Vocsabe,comcerteza,oqueOrientaoaObjetos?ObjectPascalProgramming

Inscreva-se na minha Lista VIP e receba um link para o meu e-Book Gratuito com as 10
Regras da Programao Orientada a Objetos, aps voc confirmar seu cadastro.

Seu e-mail

Cadastrar

Posts Relacionados
Pensando em Objetos

FreeAndNil... Esquea

Interfaces e a Referncia Circular entre Objetos

No utilize Mtodos Estticos

Interfaces em Todo Lugar

Interfaces e o Mtodo esttico New

10Comentrios ObjectPascalProgramming
1 Entrar

Recommend 1 Compartilhar OrdenarporMelhoravaliado

Participedadiscusso...

FabrcioCabral 18diasatrs
OlMarcos!

timopost!Parabns!:)
http://objectpascalprogramming.com/posts/oqueeorientacaoaobjetos/ 4/7
16/02/2016 Vocsabe,comcerteza,oqueOrientaoaObjetos?ObjectPascalProgramming
timopost!Parabns!:)

Umdospontosqueachoquemaiscausaconfusodequemprograma
orientadoaobjetosaquestodoqueumobjeto.Muitostendemaacharque
ele**oobjetoda"vidareal",masnaverdade(ebempostoporporvoc)ele
apenasuma*representao*dealgoda"vidareal".Oexemplo#3dadopor
voc(oarquivodecomputador)umbomexemplodisso.Oquetemos"na
vida"realsoumespaonodiscomagnticonocomputadorqueest
polarizado(representandoos0se1s)eestesquesoosdadosdoarquivoque
manipulamos.Oarquivoemsirepresentaesta"polarizaodoHD".

Umoutropontoquetambmcausamuitaconfusomisturaromodelo
orientadoaobjetoscomomodeloorientadoadados,poisnodiaadiade
muitosprogramadores,ssepensanaquelanegciodepegaroobjetoesalv
loourecuperlodobancodedados(modelorelacional),pois,novamente,no
pensamnarepresentaodosobjetoscomorepresentaes"vidareal".
1 Responder Compartilhar

MarcosDouglasSantos Mod >FabrcioCabral 18diasatrs


Perfeito!exatamenteessaaviso.
Notenhonemoquedizer...apenasOBRIGADO!
Responder Compartilhar

MessiasHenriqueVieiraSilva ummsatrs
OlMarcosDouglas!MuitobemvindooseublogparaacomunidadeObject
Pascal.Parabnspelopostepelainiciativa!
1 Responder Compartilhar

MarcosDouglasSantos Mod >MessiasHenriqueVieiraSilva


ummsatrs

ObrigadoMessias!Esperomanteressaenergianosprximosposts!
Falandonisso,jleuo2?
Responder Compartilhar

MessiasHenriqueVieiraSilva>MarcosDouglasSantos
ummsatrs

Voulerj.Obrigado!
Responder Compartilhar

LucianodeSouza ummsatrs
Nuncafiqueimuitofelizcomadefiniocorrentedequeumobjetouma
entidadedomuhndoreal.QuandoliaosexemplosencontravaTDog,TCat,
TUser,TClient,TProduct,TCar...semdvida,objetosqueexistemnomundo
real.Entretanto,quandovarriacdigosdeunitscriadasporoutros
desenvolvedoresencontravaTDataset,TRegexrEngine,TDataModulee,com
certeza,jamaismedepareicomtaiscoisasemmeumundoreal.

PioraindaeraencontrarumaTFPHTTPClientcomummundodemtodosde
http://objectpascalprogramming.com/posts/oqueeorientacaoaobjetos/ 5/7
16/02/2016 Vocsabe,comcerteza,oqueOrientaoaObjetos?ObjectPascalProgramming
PioraindaeraencontrarumaTFPHTTPClientcomummundodemtodosde
classequeapresentava,sobavestimentadeclasse,quasecertamente
programaointeiramenteestruturada.

Aofim,concluqueestenegciodeorientaoaobjetosumamontanha
ngremequeseescalapoucoapouco,descansandolongamenteemcadaumde
seuspatamares.Umasubidadiretamenteaocumenopossvelequandose
tentasaltarsobreelecomavioeparaquedas,consegueseapenas
programaoestruturadaempeleorientadaaobjetos.

Marcos,fiqueifelizquetenhadecididoescrever.Voctemconhecimento,
experinciaedidticasuficienteparafazerdesteblogumgrandeespaode
aprendizadoepartilha.
1 Responder Compartilhar

MarcosDouglasSantos Mod >LucianodeSouza ummsatrs


Luciano,bomteverporaqui.
Esperoqueesseprimeiroposttenhaclareadopravocoquesignifica
"objetosnomundoreal".

Obrigadopelocomentrio!
Responder Compartilhar

NunoPicado 11diasatrs
Muitointeressanteessasvisesapresentadasnoprimeiroartigo.
Athbempoucotempo,euusavaaorientaoaobjectocomoumefeito
secundriodaprogramaoemDelphi.Noqueeunosoubessequeestava
errado,masosvelhoshbitostrazidosdoPascalditavamaminhaformade
programar.
Descobriosinterfacesapenashdoisanos,quandopesquiseicomofazerum
sistemadeplugins.
Essadescoberta,ditadapelanecessidade,impulsionoumeparatentar
realmenteprogramaremobjectos,esempremepareceuqueexplicao
habitualfaltavaqualquercoisa.Comeceialidarcomelesdeformamais
pensada,evejoagoraqueestasminhas'primeiras'incursesautodidactas
estavamairnobomsentido.Masaindatenhomuitoparaaprender(at
porquenodiaqueumprogramadordeixardeteroqueaprender,maisvale
comprarfeito).

HpoucotempotivedefazerumparseremLazarus,paralerosdadosdeum
XML,eexpoloscomoobjectos.OXMLDataBindingalinoexiste,etivedeo
fazereu,masopteiporcriaruminterfaceparanoterdemepreocuparem
libertarmemrianofinal.Curiosotervistoessarefernciaaqui,eestoucurioso
porveroartigosobreessaabordagem.
Masjagoravejotodosporordem!:)

ParabnsMarcos.Abrao!
Responder Compartilhar

http://objectpascalprogramming.com/posts/oqueeorientacaoaobjetos/ 6/7
16/02/2016 Vocsabe,comcerteza,oqueOrientaoaObjetos?ObjectPascalProgramming

MarcosDouglasSantos Mod >NunoPicado 11diasatrs


ObrigadoNuno.

TambmutilizoLazaruseseiqueemalgunsmomentosfaltamalgumas
"facilidades"queoDelphiououtrasIDE'spossamter.Mastambm
achoqueessasfacilidadesestochegandomuitorpidonoLazarus,
sendoapenasumaquestodetempoedeterumacomunidademais
ativaconstruindotaissolues/frameworks.

Meumtododetrabalharcomacriaodeobjetosqueutilizam
Interfacesesse:
http://objectpascalprogramming...

Umabrao.
1 Responder Compartilhar

Object Pascal Programming by Marcos Douglas

Theme by John Otander

http://objectpascalprogramming.com/posts/oqueeorientacaoaobjetos/ 7/7

Vous aimerez peut-être aussi