powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / По-моему жутковатый образец использования паттернов
7 сообщений из 7, страница 1 из 1
По-моему жутковатый образец использования паттернов
    #35833372
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изучаю сетевое двигло для игр, мне нужно разобраться что и как работает в Java-версии, чтобы или переписать на С++, или разобраться с С-клиентом, к которому нет документации. Пытаюсь понять как коннектится для начала:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public class SimpleClient implements ServerSession {
...................
    public void login(Properties props) throws IOException {
        synchronized (this) {
            if (connectionStateChanging || clientConnection != null) {
                RuntimeException re =
                    new IllegalStateException(
                        "Session already connected or connecting");
                logger.logThrow(Level.FINE, re, re.getMessage());
                throw re;
            }
            connectionStateChanging = true;
        }
        ClientConnector connector = ClientConnector.create(props);
        connector.connect(connListener);
    }
....................
}
Понятно, смотрим класс ClientConnector:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
public abstract class ClientConnector
{
private static ClientConnectorFactory theSingletonFactory =
        new com.sun.sgs.impl.client.simple.SimpleConnectorFactory();
.............
    public static ClientConnector create(Properties properties) {
	return theSingletonFactory.createConnector(properties);
    }
.............
}
Так, пошли всякие там фэктори да синглтоны:
Код: plaintext
1.
2.
3.
4.
public class SimpleConnectorFactory implements ClientConnectorFactory {
    public SimpleClientConnector createConnector(Properties properties) {
        return new SimpleClientConnector(properties);
    }
}
Мда, небольшой однако класс...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
class SimpleClientConnector extends ClientConnector {
    SimpleClientConnector(Properties properties) {
        
        String host = properties.getProperty("host");
        if (host == null) {
            throw new IllegalArgumentException("Missing Property: host");
        }
        
        String portStr = properties.getProperty("port");
        if (portStr == null) {
            throw new IllegalArgumentException("Missing Property: port");
        }
        int port = Integer.parseInt(portStr);
        if (port <  0  || port >  65535 ) {
            throw new IllegalArgumentException("Bad port number: " + port);
        }

	PropertiesWrapper wrappedProperties = new PropertiesWrapper(properties);
	connectTimeout =
	    wrappedProperties.getLongProperty(
		"connectTimeout", DEFAULT_CONNECT_TIMEOUT);
        // TODO only RELIABLE supported for now.
        TransportType transportType = TransportType.RELIABLE;

        SocketAddress socketAddress = new InetSocketAddress(host, port);
        connector = 
            new SocketEndpoint(socketAddress, transportType).createConnector();
    }
}
Ну наконец-то, чуть в лесу не заблудился...
А теперь внимание, вопрос, там сильно это фэктори надо было???
...
Рейтинг: 0 / 0
По-моему жутковатый образец использования паттернов
    #35833405
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот это и есть главный вопрос использования паттернов- зачем использовать их тогда, когда они нафиг не нужны? Это я и не люблю -если паттерн ложится на задачу, то он инстинктивно будет внедрен, а если программист изучил несколько и использует их просто потому что выучил и "паттерны-это круто", то и получается то что видим
...
Рейтинг: 0 / 0
По-моему жутковатый образец использования паттернов
    #35833406
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLo пишет:

> Ну наконец-то, чуть в лесу не заблудился...
> А теперь внимание, вопрос, там сильно это фэктори надо было???

Ни фэктори, ни синглтоны в Java не нужны.
Синглтон - это просто класс с закрытым конструктором и со
статической инстансой.

Фактори - это по рефлекшн или ещё как вызов конструктора.

Но фактори может быть нужен как механизм, указывающий
КАКОЙ класс инстанциировать. Тогда это возможно имеет смысл.

Только я не понимаю, к чему вопрос, если ты на С++ собрался
переписывать, -- там тебе и фактори, и синглтоны пригодятся,
там без них никак.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
По-моему жутковатый образец использования паттернов
    #35833433
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Только я не понимаю, к чему вопрос, если ты на С++ собрался
переписывать, -- там тебе и фактори, и синглтоны пригодятся,
там без них никак.

Во-первых непонятно, нахрена оно тут? А во-вторых, оно мне обязательно в С++ в этом месте понадобится фэктори?? Да я ещё рассчитываю, что пока я изучаю Джава версию, отыщется доброволец-писака на С++, но да ладно, попробую и сам переписать, если понадобится, благо исходники на Джаве доступны. Только прежде всего досконально изучу Джава-версию.
...
Рейтинг: 0 / 0
По-моему жутковатый образец использования паттернов
    #35835434
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLo пишет:

А во-вторых, оно мне обязательно в
> С++ в этом месте понадобится фэктори??

Да. Других способов динамически создавать объекты неизвестного
заранее класса в С++ нет.

С синглтоном сложнее, конечно, там может быть и класса-то не
надо, в таком случае в Java деться некуда, но класс делают синглтоном.
В С++ можно вообще класс не делать. Например, передавать указатель
на функцию нужную. Или на данные нужные.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
По-моему жутковатый образец использования паттернов
    #35835444
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLo пишет:

> public class SimpleClient implements ServerSession {

А это что за шняга ? Это ж какая-то из стандартных библиотек,
либо использующая стандарные API, нет ? Тогда там просто по
спецификациям возможно ПОЛОЖЕНО использовать всякие фактори и пр.

И что ещё хочу сказать -- ну у вас в Java всё вот так через жопу
делается. Функциональности -- с гульких хуост, а понаписано ...

Причём это не только потому, что язык плохой. Просто у пишуших
в голове дыра.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
По-моему жутковатый образец использования паттернов
    #35835681
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
XDiaBLo пишет:

> public class SimpleClient implements ServerSession {

А это что за шняга ? Это ж какая-то из стандартных библиотек,
либо использующая стандарные API, нет ? Тогда там просто по
спецификациям возможно ПОЛОЖЕНО использовать всякие фактори и пр.

И что ещё хочу сказать -- ну у вас в Java всё вот так через жопу
делается. Функциональности -- с гульких хуост, а понаписано ...

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

Это сетевое двигло для игр, разрабатываемое Sun.
А насчёт "у вас в Java", я в основном на С++ пишу.
И всё таки не понимаю, нафига огород городить, когда этот огород никогда не пригодится... Я про излишние всякие заморочки, када мона без всяких фэктори, которые в данном месте никакой пользы не несут.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / По-моему жутковатый образец использования паттернов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]