Skip to content

Commit 0eba7f5

Browse files
committed
refactor: adds grammatical, concordance and punctuation corrections, as well as pending translation
1 parent 1e3e044 commit 0eba7f5

File tree

1 file changed

+19
-19
lines changed
  • 1-js/09-classes/04-private-protected-properties-methods

1 file changed

+19
-19
lines changed

1-js/09-classes/04-private-protected-properties-methods/article.md

+19-19
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,29 @@
33

44
Um dos princípios mais importantes de programação orientada a objetos é a delimitação da interface interna da externa.
55

6-
Essa é uma prática "fundamental" ao desenvolver qualquer coisa mais complexa do que um aplicativo "hello world"
6+
Essa é uma prática "fundamental" ao desenvolver qualquer coisa mais complexa do que um aplicativo "hello world".
77

88
Para entender isso, vamos nos afastar do desenvolvimento e voltar nossos olhos para o mundo real.
99

1010
Geralmente, os dispositivos que usamos são bastante complexos. No entanto, delimitar a interface interna da externa permite utilizá-los sem problemas.
1111

1212
## Um exemplo da vida real
1313

14-
Por exxemplo, uma máquina de café. Simples do lado de fora: um botão, uma tela, alguns orifícios...E, com certezza, o resultado: um ótimo café! :)
14+
Por exemplo, uma máquina de café. Simples do lado de fora: um botão, uma tela, alguns orifícios... E, com certeza, o resultado: um ótimo café! :)
1515

1616
![](coffee.jpg)
1717

1818
Mas internamente...(uma imagem do manual de reparo)
1919

2020
![](coffee-inside.jpg)
2121

22-
Muitos detalhes. Porém podemos usá-la sem saber nada.
22+
Muitos detalhes. Porém, podemos usá-la sem saber nada.
2323

2424
Máquinas de café são bastante confiáveis, não são? Podemos usá-las por anos, e apenas se algo der errado, precisamos levá-las para o reparo.
2525

2626
O segredo da confiança e simplicidade de uma máquina de café está em ajustar bem todos os detalhes e escondê-los internamente.
2727

28-
Se removermos a cobertura protetora da máquina de café, então usá-la será muito mais complexo (onde apertar?), e perigoso (pode causar choque elétrico)
28+
Se removermos a cobertura protetora da máquina de café, então usá-la será muito mais complexo (onde apertar?), e perigoso (pode causar choque elétrico).
2929

3030
Como veremos, na programação, objetos são como máquinas de café.
3131

@@ -42,9 +42,9 @@ Se continuarmos com a analogia da máquina de café, o que está escondido inter
4242

4343
Uma interface interna é usada para o objeto funcionar, seus detalhes se interconectam. Por exemplo, um tudo de caldeira está atrelado ao elemento de aquecimento.
4444

45-
Porém por fora, uma máquina está fechada pela cobertura protetora, de modo que ninguém possa acessar esses detalhes internos. Detalhes são ocultos e inacessíveis. Podemos usar suas funcionalidades por meio da interface externa.
45+
Porém, por fora, uma máquina está fechada pela cobertura protetora, de modo que ninguém possa acessar esses detalhes internos. Detalhes são ocultos e inacessíveis. Podemos usar suas funcionalidades por meio da interface externa.
4646

47-
Assim, tudo precisamos para utilizar um objeto é conhecer sua interface externa. Podemos estar completamente inconscientes de como funciona por dentro, e isso é ótimo
47+
Assim, tudo que precisamos para utilizar um objeto é conhecer sua interface externa. Podemos estar completamente inconscientes de como funciona por dentro, e isso é ótimo.
4848

4949
Esta foi uma introdução geral.
5050

@@ -53,7 +53,7 @@ No Javascript, existem dois tipos de campos de objeto (propriedades e métodos):
5353
- Publico: acessível de qualquer lugar. Eles compõem a interface externa. Até agora, estávamos usando apenas propriedades e métodos públicos.
5454
- Privado: acessível apenas de dentro da classe. Estes são para a interface interna.
5555

56-
Em muitas outras linguagens, também existem campos "protegidos": acessíveis apenas de dentro da classe e por aquelas que a estendem (semelhante a privado, porém com acesso adicional pelas classes que herdam). Eles também são úteis para a interface interna. De certa forma, são mais difundidos do que os privados, pois geralmente desejamos que classes que herdam tenham aacesso a eles.
56+
Em muitas outras linguagens, também existem campos "protegidos": acessíveis apenas de dentro da classe e por aquelas que a estendem (como privado, porém com acesso adicional pelas classes que herdam). Eles também são úteis para a interface interna. De certa forma, são mais difundidos do que os privados, pois geralmente desejamos que classes que herdam tenham acesso a eles.
5757

5858
Campos protegidos não são implementados em Javascript no nível da linguagem, porém, na prática, são muito convenientes, então eles são emulados.
5959

@@ -83,7 +83,7 @@ coffeeMachine.waterAmount = 200;
8383

8484
Agora as propriedades `waterAmount` e `power` são públicas. Podemos facilmente obtê-las/atribuí-las de fora para qualquer valor.
8585

86-
Vamos alterar a propriedade `waterAmount` para protegida para ter mais controle sobre ela. Por exemplo, não queremos que qualquer alguém a definia com um valor abaixo de zero.
86+
Vamos alterar a propriedade `waterAmount` para protegida para ter mais controle sobre ela. Por exemplo, não queremos que ninguém defina com um valor abaixo de zero.
8787

8888
**Propriedades protegidas são normalmente prefixadas com um sublinhado `_`.**
8989

@@ -119,11 +119,11 @@ let coffeeMachine = new CoffeeMachine(100);
119119
coffeeMachine.waterAmount = -10; // _waterAmount será 0, não -10
120120
```
121121

122-
Agora, o acesso está sob controle, tornando impossível definir a quantidade de água abaixo de zero.
122+
Agora, o acesso está sob controle, torna-se impossível definir a quantidade de água abaixo de zero.
123123

124-
## "power" apenas para leitura
124+
## "power" apenas para leitura
125125

126-
Para a propriedade `power`, vamos torná-la apenas para leitura. ÀS vezes acontece que UM propriedade deve ser definida apenas no momento de criação, e então nunca modificada.
126+
Para a propriedade `power`, vamos torná-la apenas para leitura. ÀS vezes acontece que uma propriedade deve ser definida apenas no momento de criação, e então nunca modificada.
127127

128128
Este é exatamente o caso da máquina de café, `power` nunca muda.
129129

@@ -175,7 +175,7 @@ new CoffeeMachine().setWaterAmount(100);
175175
176176
Isto parece um pouco mais longo, mas funções são mais flexíveis. Elas podem aceitar múltiplos argumentos (mesmo que não precisemos deles agora).
177177
178-
Por outro lado, a sintaxe ger/set é mais curta, então, no final das contas, não existe uma regra estrita, você pode decidir.
178+
Por outro lado, a sintaxe get/set é mais curta, então, no final das contas, não existe uma regra estrita, você pode decidir.
179179
````
180180

181181
```smart header="Campos protegidos são herdados"
@@ -188,7 +188,7 @@ Portanto, os campos protegidos são naturalmente herdados, ao contrário dos pri
188188

189189
[recent browser=none]
190190

191-
Há uma proposta de JavaScript finalizada, quase padronizada, que fornece suporte a nível de linguagem para métodos e propriedades privados.
191+
Há uma proposta de JavaScript finalizada, quase padronizada, que fornece suporte ao nível da linguagem para métodos e propriedades privados.
192192

193193
Privados devem começar com `#`. Eles são acessíveis apenas de dentro da classe.
194194

@@ -282,14 +282,14 @@ Com campos privados isso é impossível: `this['#name']` não funciona. Essa é
282282

283283
## Resumo
284284

285-
Em termos de POO, a delimitação da interface interna da externa é chamada de [encapsulamento](https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_orientada_a_objetos#Encapsulamento)
285+
Em termos de POO, a delimitação da interface interna da externa é chamada de [encapsulamento](https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_orientada_a_objetos#Encapsulamento).
286286

287287
Isto proporciona os seguintes benefícios:
288288

289289
Proteção para os usuários, evitando que atirem no próprio pé
290-
: Imagine que um time de desenvolvedores usando uma máquina de café. Ela foi fabricada pela empresa "Best CoffeeMachine" e funciona bem, mas a capa protetora foi removida, expondo a interface interna.
290+
: Imagine, uma equipe de desenvolvedores usando uma máquina de café. Ela foi fabricada pela empresa "Best CoffeeMachine" e funciona bem, mas a capa protetora foi removida, expondo a interface interna.
291291

292-
Todos os desenvolvedores são civilizados e usam a máquina de café como pretendido. No entanto um deles, John, decidiu que é o mais intelligente e fez algumas modificações internas na máquina de café. Como resultado a máquina de café falha dois dias depois.
292+
Todos os desenvolvedores são civilizados e usam a máquina de café como pretendido. No entanto, um deles, John, decidiu que ele era o mais inteligente e fez algumas modificações internas na máquina de café. Como resultado a máquina de café falha dois dias depois.
293293

294294
Certamente, isso não é culpa do John, mas sim da pessoa que removeu a capa protetora e permitiu que John fizesse suas manipulações.
295295

@@ -302,12 +302,12 @@ Manutenibilidade
302302

303303
Se você é um desenvolvedor de tal classe, é ótimo saber que métodos privados podem ser renomeados com segurança, seus parâmetros podem ser modificados e até removidos, porque nenhum código externo depende deles.
304304

305-
For users, when a new version comes out, it may be a total overhaul internally, but still simple to upgrade if the external interface is the same.
305+
Para os usuários, quando uma nova versão é liberada, pode ser uma reformulação total internamente, mas ainda assim simples de atualizar se a interface externa for a mesma.
306306

307307
Complexidade oculta
308-
: Pessoas adora usar coisas que são simples. Ao menos do lado de fora. O que está por dentro é uma história diferente.
308+
: Pessoas adoram usar coisas que são simples. Ao menos do lado de fora. O que esta por dentro é uma história diferente.
309309

310-
Programadores não são exceção.
310+
Programadores não são exceções.
311311

312312
**É sempre conveniente quando detalhes de implementação estão ocultos e uma interface externa simples e bem documentada está disponível.**
313313

0 commit comments

Comments
 (0)