Pull to refresh
4
0
Send message

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

То, что вы не знаете как (и я тоже), не означает, что это невозможно и что спецслубы активно не ищут такие возможности. Вы легко найдете ссылки на примеры, когда https не помог скрыть информацию. Наконец, в «полицейском государстве» можно просто запретить трафик, на который нет копии сертификата. А с учетом того, что закон Яровой технически провальный, запрет неопознанного трафика очень реален.
Вы рассуждаете именно так, как хочет Роскомнадзор. Используете стандартные решения, которые или уже вскрыты, или могут быть вскрыты при необходимости, или провайдеры, которые их предоставляют, обязаны работать с органами и т.д. В этом смысле на много надежнее более простые, но никому не известные каналы и протоколы.
Речь не о том, что есть решения, а том, как скрыться от надзора. В этом контексте использовать готовые свободные решения не очень безопасно. Для скрытности в разы надежнее сделать свое. Я думаю, что «плохие парни» так и работают.
Написать свой собственный мессенджер для простого обмена текстовыми сообщениями — дело на пару часов. Для всяких злодеев, которые действительно хотят скрыть свое общение, это на много проще, чем придумывать конспирацию поверх существующих мессенджеров.
Понимаю, что тема старая, но спрошу.
Есть у нас несколько модулей Laurent-2 и KBX-3D. С Laurent'ами проблем нет, а вот KBX-3D упорно не желают посылать сообщения М2М по событиям изменения состояния входных линий. При этом они на связи и сами исправно принимают команды. В чем может быть проблема?
У вас его тоже нет в виде универсального рецепта. Приступая к проекту, вы определяете круг задач и исходя из этого решаете где нужен интерфейс.

Если вас просят вскопать огород, вы приходите с лопатой, если забить гвоздь, то с молотком. Вы же не потащите «на объект» все возможные инструменты. Так и здесь.

Вы уже поняли, что зря тут на меня наехали, но гордость не позволяет отступить. Начали уже за все подряд цепляться лишь бы последнее слово сказать.
Ну это каждый сам решает исходя из задачи. Если бы было четкое правило, то его бы компилятор проверял и вы бы просто проект не собрали.
что если реализация одна или что без интерфейса тоже заработает, то он не нужен — бред.
Почему?

Вам здесь еще никто и не сказал, что их надо лепить везде подряд.


Да все только про это и говорят. Я пишу, что интерфейс нужен вовсе не везде а только там, где он нужен, а мне отвечают, что я не прав. Вы же программист? Утверждение обратное «Интерфейс нужен не везде» — это «Интерфейс нужен везде». И при этом все отмечают, что у них как бы не все классы под интерфейсами, но я все равно не прав.
Э…
Открываем microsoft. Членами класса являются 1,2,3,… Переменных нет, но есть поля класса, которые содержат переменные класса. Идем дальше на страницу полей
Поля объявляются в блоке класса путем указания уровня доступа поля, за которым следует тип поля, а затем имя поля.

Т.е. в данном случае все таки объявление, но конечно не класса, но и не переменной, а поля. Под которым в дальнейшем подразумевается класс.

Я не понимаю, зачем это все здесь обсуждать. Очевидно у вас тоже не уверенные знания.
Все 100% классов в ваших проектах имели интерфейсы? Учебные и тестовые проекты не являются программами по определению и обсуждению не подлежат? Это серьезно?

По ссылке из вашей единственной статьи (да, я любопытный) перешел на гитхаб в «unitycontainer», походил по классам. Интерфейсы есть далеко не везде. Может уже пора признать, что если интерфейс не нужен, то он и не нужен?
Я даже не представляю, что можно было бы ответить на это. Это зависит от того, что считать правильным ответом. Так наверно. Теперь вы голову ломайте.
Ок, у вас в проектах все без исключения классы имеют интерфейсы потому что ООП? И еще наверно абстрактный класс до кучи? Понимает, здесь в обсуждении все приводят примеры когда без интерфейсов никак или очень сложно. Но утверждать, что это всегда так не правильно.

Я вот просто открыл гитхаб и набрал в поиске «C#», перешел по первой же ссылке — какая-то игра «JumpAttacker». Довольно объемный проект. Походил по файлам. Нет интерфейсов… Может плохо искал. Пошел по другой ссылке (что-то китайское «GavinYellow»). В некоторых классах были интерфейсы, в некоторых нет. Идем далее «statianzo» — где-есть, где-то нет интерфейса.

Я уже ниже писал, что если погуглить англоязычные форумы, то там пишут, что интерфейсы не надо липить везде подряд вот или вот
И вы уж извините, но я склонен больше доверять тем, кто придумал C#.
Do define an interface if you need to provide a polymorphic hiercharcy of value types
, а если полиморфизм не нужен, то не захламяйте код.
А почему вы решили, что не планирую ссылаться на HelloWord? А вдруг потребуется поддержка? Все примеры здесь «притянуты за уши» ни чем не лучше друг-друга.

Ни кто не хочет смириться с мыслью, что бывают простые проекты.

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

По поводу терминологии. Один раз случайно «унаследовал» интерфейс и все. Если верить МСДНу, то создают экземпляр класса, а не «переменную типа». Да, не объявляют. 1:1

Прочее читаю придиками не по существу.
Что тут не понятно? Три класса имеют одинаковые методы. Было бы красиво прикрутить интерфейс, который они реализую. Но в данном случае ничего кроме красивости это не даст. Все как работало, так и будет работать. Я не знаю какой там контекст, но если это законченный проект (путь такой странный), то интерфейсы ему ни чем не помогут.

что касается ревью, то пожалуй:

 interface Ix {
        void Run();
    }

public class A: Ix
    {
        public void Run() => Console.WriteLine("A");
    }

    public class B: Ix
    {
        public void Run() => Console.WriteLine("B");
    }

    public class C: Ix
    {
        public void Run() => Console.WriteLine("C");
    }

    class Prg
    { 
        object GetSmth() => new B();

        public  Prg()
        {
            var smth = (Ix)GetSmth();
            smth.Run();
            Console.ReadKey();
        }
    }


Это по сути то, что я написал сразу после дополнения, если вы читали (многие по-моему не читали дальше ката)
Ну если сомнительно, то напишите как интерфейс к классу, который есть только в одном экземпляре и на который больше ни где ни кто не ссылается, вам чем-то поможет. Напишите.

А, все рано же не напишите…
Вы меня тролите что-ли?
Да все вы правильно пишите. Я согласен полностью. Я ошибся когда написал «единственная реализация», имея в виду, что еще и ссылок на это класс всего одна или несколько, но все они тут рядышком и ни какой «многоэтажности» даже близко нет в планах. Надо было писать подробнее.
По моему нет. Но вам сейчас расскажут про поддержку кода, работу в команде, библиотеки и прочие интересные, но совершенно не уместные штуки.

Хотя интерфейс здесь конечно просто просится.
Разве я здесь написал, что интерфейсы не нужны вообще?

Я уверен, что в вашем проекте, которым сейчас вы занимаетесь (если вы реально программист) найдется не мало классов к которым нет интерфейсов.

Я выше спросил надо написать интерфейс к HelloWord, но мне не ответили по существу. Да и не ответят. Общий тренд уже задан. Комментариев в поддержку не будет, чтобы минусов не нахватать от вас.
1

Information

Rating
Does not participate
Registered
Activity