Articles of oop

Obter todos os objects associados / compostos dentro de um object (na maneira abstrata)

Negócio : Eu tenho um sistema de pagamento no qual o pagamento pode ser feito através da GiftCoupon, ClubMembershipCard, etc. Um pagamento em si pode ter múltiplos componentes de pagamento Classe : Eu tenho uma class de pagamento. Tem componentes de pagamento como GiftCouponPayment, ClubMembershipCardPayment, CashPayment e assim por diante. Cada tipo de componente satisfaz […]

Por que tanto a class abstrata quanto a interface existem em C #?

Por que tanto a class abstrata quanto a interface existem em C # se conseguirmos o recurso de interface fazendo com que todos os membros da class sejam abstratos. É porque: Interface existe para ter inheritance múltipla Faz sentido ter interface porque o recurso CAN-DO do object deve ser colocado em uma class abstrata de […]

Por que os methods estáticos não são considerados boas práticas OO?

Eu estou lendo Scala de Programação . No início do capítulo 4, o autor comenta que o Java suporta methods estáticos, que são “conceitos OO não tão puros”. Porque isto é assim?

Projetando database SQL para representar a hierarquia de classs OO

Eu estou no processo de converter uma hierarquia de classs para ser armazenado em um database SQL. Pseudo código original: abstract class Note { int id; string message; }; class TimeNote : public Note { time_t time; }; class TimeRangeNote : public Note { time_t begin; time_t end; }; class EventNote : public Note { […]

Sombras vs sobrecargas em vb.net

Quando temos o new em C #, que pessoalmente eu vejo apenas como uma solução alternativa para replace uma propriedade que não tem uma declaração virtual / overridable, no VB.NET, temos dois “conceitos” Shadows e Overloads . Nesse caso, prefere um ao outro?

Os objects devem se excluir em C ++?

Eu passei os últimos 4 anos em C #, então estou interessado em práticas recomendadas atuais e padrões de design comuns em C ++. Considere o seguinte exemplo parcial: class World { public: void Add(Object *object); void Remove(Object *object); void Update(); } class Fire : Object { public: virtual void Update() { if(age > burnTime) […]

Por que os campos públicos são mais rápidos que as propriedades?

Eu estava bisbilhotando no XNA e vi que a class Vector3 estava usando campos públicos em vez de propriedades. Eu tentei um benchmark rápido e descobri que, para um struct a diferença é bastante dramática (adicionando dois vetores juntos, um milhão de vezes levou 2.0s com propriedades e 1.4s com campos). Para um tipo de […]

Datilografado: como estender duas classs?

Eu quero economizar meu tempo e reutilizar o código comum entre as classs que estendem as classs PIXI (uma biblioteca de renderizador 2d webGl). Interfaces de object: module Game.Core { export interface IObject {} export interface IManagedObject extends IObject{ getKeyInManager(key: string): string; setKeyInManager(key: string): IObject; } } Meu problema é que o código dentro de […]

Princípio de Segregação de Interface – Programa para uma interface

Eu estava lendo sobre SOLID e outros princípios de design. Eu pensei que o ISP era o mesmo que “Programa para uma interface, não uma implementação”. Mas parece que estes são princípios diferentes? Existe alguma diferença?

Sobrecarregando, substituindo e escondendo?

Alguém pode explicar o que está sobrecarregando, substituindo e ocultando em .net? obrigado