Perguntas com a marcação «class-design»

Diretrizes gerais sobre como projetar classes com as melhores práticas conhecidas do setor.

16
Ao usar o Princípio da Responsabilidade Única, o que constitui uma "responsabilidade"?
Parece bastante claro que "princípio de responsabilidade única" não significa "apenas uma coisa". É para isso que servem os métodos. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } Bob Martin diz que "as aulas devem ter apenas …

9
Existe alguma razão “real” para a herança múltipla ser odiada?
Eu sempre gostei da idéia de ter várias heranças suportadas em um idioma. Na maioria das vezes, embora seja intencionalmente perdoado, e a suposta "substituição" são interfaces. As interfaces simplesmente não cobrem a mesma herança múltipla, e essa restrição pode ocasionalmente levar a mais códigos padronizados. A única razão básica …










3
Parâmetros opcionais ou construtores sobrecarregados
Estou implementando a DelegateCommande, quando estava prestes a implementar o (s) construtor (es), criei as duas seguintes opções de design: 1: Tendo vários construtores sobrecarregados public DelegateCommand(Action<T> execute) : this(execute, null) { } public DelegateCommand(Action<T> execute, Func<T, bool> canExecute) { this.execute = execute; this.canExecute = canExecute; } 2: Ter apenas …

10
Podemos viver sem construtores?
Digamos que, por alguma razão, todos os objetos sejam criados dessa maneira $ obj = CLASS :: getInstance (). Em seguida, injetamos dependências usando setters e executamos a inicialização usando $ obj-> initInstance (); Existem problemas ou situações reais que não podem ser resolvidos se não usarmos construtores? Ps a …


2
É uma boa idéia fornecer assinaturas de funções diferentes que façam a mesma coisa?
Aqui está uma classe C ++ que é construída com três valores. class Foo{ //Constructor Foo(std::string, int, char); private: std::string foo; char bar; int baz; }; Todos os tipos de parâmetros são diferentes. Eu poderia sobrecarregar o construtor para que a ordem não importasse. class Foo{ //Constructors Foo(std::string, char, int); …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.