Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Windows Tipps & SecurityNighthawk M7 Pro im Test: Flexibler, aber teurer 5G-Router(21.09.2026 um 10:30 Uhr)
Sichere ProgrammierungNeue Gmail-Funktion: So sparst du jetzt Zeit bei Einmalcodes(21.09.2026 um 10:00 Uhr)
Sichere ProgrammierungYour GIF exporter is fine — the container is the problem(21.09.2026 um 10:01 Uhr)
Sichere ProgrammierungCSS, Motion, or GSAP? I Choose by Who Owns the Animation(21.09.2026 um 10:12 Uhr)
Windows Tipps & SecurityNighthawk M7 Pro im Test: Flexibler, aber teurer 5G-Router(21.09.2026 um 10:30 Uhr)
Sichere ProgrammierungNeue Gmail-Funktion: So sparst du jetzt Zeit bei Einmalcodes(21.09.2026 um 10:00 Uhr)
Sichere ProgrammierungYour GIF exporter is fine — the container is the problem(21.09.2026 um 10:01 Uhr)
Sichere ProgrammierungCSS, Motion, or GSAP? I Choose by Who Owns the Animation(21.09.2026 um 10:12 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

PRINCÍPIO DE ABERTO/FECHADO

OPEN - CLOSED PRINCIPLE As partes integrantes de um código devem ser abertas para extensão e fechadas para modificações. A ideia é evitar a dependência de verificações condicionais com if-else, operadores ternários e switch. Quando um n…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!




OPEN - CLOSED PRINCIPLE



As partes integrantes de um código devem ser abertas para extensão e fechadas para modificações.



A ideia é evitar a dependência de verificações condicionais com if-else, operadores ternários e switch.



Quando um novo requisito chegar, você adiciona o comportamento criando algo novo, sem modificar o código antigo.









PRA SER JUSTO



A ideia de não usar operadores condicionais é um resultado de uma aplicação correta do OCP, não é o foco em si.



Isso porque para conseguir não depender desses operadores é necessário excelência na aplicação de polimorfismo e abstração.



Com isso, se torna possível acoplar novas implementações sem reescrever o código já existente.









EXEMPLO RUIM



Todo novo meio de pagamento causará uma edição aqui. Dificulta em novas implementações e põe em risco as antigas.



Exemplo de Código:




// RUIM: Forte acoplamento. A classe precisa ser modificada a cada nova regra.
class PaymentProcessor {
public process(amount: number, method: 'CREDIT_CARD' | 'PIX' | 'PAYPAL'): void {
if (method === 'CREDIT_CARD') {
console.log(`Processando R$${amount} via Cartão de Crédito...`);
// Lógica complexa de integração com a adquirente...
}
else if (method === 'PIX') {
console.log(`Processando R$${amount} via chave Pix...`);
// Lógica complexa de geração de QRCode...
}
else if (method === 'PAYPAL') {
console.log(`Processando R$${amount} via PayPal...`);
// Lógica complexa de redirecionamento...
}
else {
throw new Error('Método de pagamento não suportado.');
}
}
}












EXEMPLO BOM



Basta cumprir o contrato “IPaymentMethod” e o método já é válido.



Conseguimos então adicionar um “DebitCardPayment”, sem afetar os demais métodos.



Exemplo de Código:




// 1. A Abstração (O Contrato)
interface IPaymentMethod {
processPayment(amount: number): void;
}

// 2. As Extensões (Novos comportamentos isolados)
class CreditCardPayment implements IPaymentMethod {
public processPayment(amount: number): void {
console.log(`Processando R$${amount} via Cartão de Crédito...`);
}
}

class PixPayment implements IPaymentMethod {
public processPayment(amount: number): void {
console.log(`Processando R$${amount} via chave Pix...`);
}
}

// 3. A Aplicação Fechada (O Consumidor)
class PaymentProcessor {
public process(amount: number, paymentMethod: IPaymentMethod): void {
paymentMethod.processPayment(amount);
}
}

// Uso prático:
const processor = new PaymentProcessor();
processor.process(150.0, new PixPayment());












É MESMO TÃO IMPORTANTE?



Sem titubear, sim e muito!



Retrabalho é caro: é mão de obra, planejamento e tempo desperdiçados.



E além disso, ficar constantemente alterando código já “finalizado” abre mais brechas para quebrar uma regra de negócio ou feature que já funcionava.






Meus Links

Github: victor-lis-bronzo

Linkedin: victor-lis-bronzo

Portfólio: portfolio.victorlisbronzo.me

Portfólio mais legal: victorlisbronzo.me






Deixe sua reação ❤️

Você já precisou refatorar código antigo por ter aplicado mal o OCP?

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten PRINCÍPIO DE ABERTO/FECHADO

Thematisch verwandte Begriffe: PRINCÍPIO, ABERTOFECHADO · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-94036 | A security flaw has been discovered in D-Link DIR-X1860 and DIR-X1860Z u…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick