固体E O Princessは、PIOをします、nは、oをします


sejam muito bem vindos mais um artigoHoje trataremos sobre固体e seu Primeiro Princess . Pio,e a como El Nos Ajuda Adesdaアンテデtudo、vamosは、馬鹿Daがiを意味します.

Os princípios SOLID nos dizem como organizar as funções e estruturas de dados em classes e como essas classes devem ser interconectadas.


エムレジュロ、スズ王女は、ピオスNOS Mostram como主催者e Comunicar Melhor Nosso C通digoです.アゴラque j jは、vmos sobreを定義します.

問題点
Eパラシュートは、emender o que que Ese Princessを捕えます.
Digamos que vocは、foi contratado como desenvoledorバックエンド、パラtrabalhar EM決定条件empresaです.Passado algumテンポは、aparecer atividadesデフロントエンドです.デ・レペント、バンコのアトリビデス、資本主義、デセグリアのAなど
クアンドVocは、perceber、jは、est fafado tudo、mesmo - sendoのコントラクトパラシュートである.Nosse Momentoは、OSの問題は、Aparecerである来てください:VOCは、fica atarefado、suas entregas nの子孫o saem com oテンポe qualidade esperados、os sistemas ficam inst - eu vis e o caos est
Vimos na hist - no - ria - acima , no o aglomerado de responsabilidades para ma ma nnnnccessoa , a ' m um unema , e em nosso c disdi digo n no o seia diferente
VAMOSの問題点と問題点Vamos Contruir Ma Funcionalidade de Criar Postagens NOS CorreiosInformaは、es es necessとrias paraとしてPostagem estエヌエムオーマフィラです.AP通信のCriar A Postagem、Deverは、ser enviado definado電子メールを決意します.
<?php

// Todo o código abaixo é somente um exemplo didático, ocultei boa parte da implementação para não ficar muito complexo.
class PostCreator
{
    public function create()
    {       
        try {
            // Comunicação com a fila
            $client = new SqsClient([
                'profile' => 'default',
                'region' => 'us-west-2',
                'version' => '2012-11-05'
            ]);

            // Resumi toda a implementação de listagem de dados para uma única linha
            $messages = $result->get('Messages');

            // Percorrendo os itens da fila
            foreach ($messages as $message) {
                // Lógica falsa de comunicação com o correios
                $correios = new Correios();
                $response = $correios->createPost($message);

                // Lógica falsa de email
                $email = new Email();
                $email->send($message);

            }
        } catch (AwsException $e) {
            error_log($e->getMessage());
        }
    }
}
『アゴラ』についての一考察いいえCocoは、O Cはdio se comunica comのFIA、ペガオスdados、パーコールズスドドス、se comunica com AのAPI DOSのcorreios、クリマオーマPostagem e envia - um電子メール.sは、oを殺します.

第二次世界大戦後の日本語教育
問題としてのVismo O .アゴラvamos conhecer a definiは、o o oをします.

Um módulo deve ter uma, e apenas uma, razão para mudar.


atualmenteは、nossa classeのposterator deveria ser respesはベルのユニタリーのpor criarのumaのpostagem,ou seja,razのoのo paraのelaのmudar deve estar relacionado unicamente a esse contextoInfinizmente , Nossa classe n - fao o faz somente isso , exste uma s re rie re a es chen es ela ela faz al - rem m so , sobrecarregando e caasando v ' re rios動機
ルドンド・テュド・イソム・コンタ, Vamos Referatar nosso C did digo , Decidindo um Pupco Esas Responsabilidades :
<?php

class PostHandler
{
    public function handler()
    {
        $queue = SQSQueueReader();
        $post = new PostCreator();
        $email = new SenderEmail();
        $messages = $queue->getMessage();

        foreach ($messages as $message) {
            $response = $post->create($message);

            $email->send($message); 
        }
    }
}

class SQSQueueReader
{
    public function getMessage()
    {
        try {
            $client = new SqsClient([
                'profile' => 'default',
                'region' => 'us-west-2',
                'version' => '2012-11-05'
            ]);

            // Resumi toda a implementação de listagem de dados para uma única linha
            return $result->get('Messages');
        } catch (AwsException $e) {
            error_log($e->getMessage());
        }
    }
}

class PostCreator
{
    public function create($message)
    {
        $correios = new Correios();
        return $correios->createPost($message);
    }
}

class SenderEmail
{
    public function sender($body)
    {
        $email = new Email();
        $email->send($body);        
    }
}
リフタラは、Florou um Pocco Grande、Mas Agora Temosクラスcom Responsabilidades Bem definidas、Por模範、Nossa ClasseデCria - Posid o oデPostagem、fazを得ます.
エムoutras palavras、nは、s conseguimos分割されたo nosso c didim que sによって、vis por uma e nica coisa、馬Da vantagens ganisa、汝のque vessagens ganhas、es que que com essa divis lt o o、al lemのa leitura do c - dio melgo、podemos replace ir partnodo do nosso c - didigo、sem必需品afetar outras partesは、Sistemaをします.

超電導工学研究所
ガララ,ナレフトラ,アサイ,アストラマ,モドキ,カント,マウナギ,カント,エド,カント,エド,エサ,エサ,エサ,エサ,エサ,エサ,エサ,エサ,エサ,エサ,エサ,エサ,トウ.
ISSO mesmo , o srp trata de comportamento , meu c del digo TEM determinado comportamento , meu c del digo b tem outro e assim por dianteパルデ・デクス・イスス・マス・クラーロ,ヴェーレモス・ム・カルト,ディオ・オド・デ・コン・コンポティメント校長
<?php

class Creator
{
    private $conn;

    private $validation;

    public function __construct()
    {
        $this->conn = new Connection();

        $this->validation = new Validation();
    }


    public function create($data)
    {
        $this->createDataAreValid($data);       
    }


    public function createDataAreValid($data)
    {
        if ($this->validation->validate($data) {
            // faz algo
        }

        $this->createIfEmailIsUnique($data);
    }


    public function createIfEmailIsUnique($data)
    {
        if ($this->conn->checkEmail($data['email')) {
            // faz algo
        }                                 

        $this->conn->save($data);
    }
}
例としては、ティモコについて説明した.いいえC c dioのAcima、seguimos o srp tranquilamente.

再開
Pessoal , Eu Quero que Voc ' s Enterpriam que o Comportamento , Responseabilidade , de determinada classe/a a a a a a a a o o o a a a o o o o o , deve ser no nnico , seja um cadastro , uma valida plenoo o ou - buker .E .トダは、NecessのためにSexAstro o queを修正します、そして、serは、feita para o contexto qual a a a a a a a a a se a se asseMesmo que nosso fluxo依存da ou faはouse a sutrasのsuesのes,esasとしてのシャドー,chamadasを単純化する.
アゴラque j jは、vio o問題を解決します.pode parecer um Pocco difは、Calのno no o o、todavia、prを意味します.