Skip to content

Fast try OOP#1

Open
DEHuckaKpyT wants to merge 10 commits intofast-tryfrom
fast-try-OOP
Open

Fast try OOP#1
DEHuckaKpyT wants to merge 10 commits intofast-tryfrom
fast-try-OOP

Conversation

@DEHuckaKpyT
Copy link
Owner

No description provided.

Copy link

@underkoder underkoder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Следует подумать над интерфейсами Decryptor, ProcessThreadGroundService и другими, если какие-то методы лишние. снаружи должны быть недоступны, то убрать их.

Очень много логики зашито внутрь, при том, что интерфейсы прописаны и, вроде как, система должна быть гибкой.

Предлагаю подумать больше над разделением ответственности, ограничить зависимости и интерфейсы, где возможно использовать композицию.
Сейчас интерфейсы перегружены, где-то не вынесены важные зависимости, поэтому код воспринимается трудновато


namespace RGR2
{
abstract class Decrypter

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Если нет общего кода работы, то абстрактный класс бесполезен.
Предлагаю сформировать IDecrypter без лишних подробностей, которые выдаются наружу, если они ненужны.

Например:
StartWords, PathDirectoryEncryptedWords и другие можно убрать

List<string> found = FindWords();

Directory.CreateDirectory(PathDirectoryEncryptedWords);
IWriterService writerService = new TextFileWriterToColumn(PathDirectoryEncryptedWords + $"\\{Number + 1}.{Word}.txt");

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Суть абстракции в том, чтобы уйти от конекртных реализаций.

В класс надо передать через сеттер или конструктор IWriterService, который может писать в разные места, используя одинаковые по своей сигнатуре методы

new TextFileReader(Dictionary).ReadStrings(),
new MatrixByFile2x2(new TextFileReader(Matrixes)).GetMatrixes(),
"EncryptedWords",
new FileProcessing("EncryptedWords", "EncryptedStructedWords", "Total"));

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Здесь правильная зависимость.
Выше строки читаешь и получаешь матрицы напрямую, и передаешь внутрь Decrypter.

Можно было передать внутрь декриптора только сервисы, только нужны ему данные, а все остальное он мог получить как ему удобно

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants