Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Новый эмулятор Lineage II
[src=java]
public interface Server {
void start();
void init();
void close();
/*.........*/
}

publiс final class GameServer implements Server {
/*.........*/
}

publiс final class LoginServer implements Server {
/*.........*/
}
[/src]
какой профит от этого интерфейса?
[Изображение: l2nextgen.gif]
Ответ
Anikey Написал:У серверов нет вообще логики

Нет проектирования программы...
Интерфейсов нет...

Где к примеру реализация

Код:
public interface Server {
    void start();
    void init();
    void close();
    /*.........*/
}

publiс final class GameServer implements Server {
    /*.........*/
}

publiс final class LoginServer implements Server {
    /*.........*/
}

и

Код:
public class Enums {
    public enum DbaseType {
        MySql,
        MsSql
    }
    public enum IdFactoryType {
        Compaction,
        BitSet,
        Stack;

        public static IdFactoryType type(final String key) {
            return Enums.IdFactoryType.valueOf(Config.strs(key, "IDFactory", "Compaction"));
        }
    }
}

Enums.DbaseType.MySql;

Enums.IdFactoryType.type("key");

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

Хотя может быть я вас не верно понял, тогда прошу прощение)
open-team.ru - Freya, HighFive...
Ответ
Пример наверно не удачный.
Но в нынешних (думаю во всех) сборках есть полно других мест, что можно и нужно бы переделать, чтоб было удобнее и быстрее работать и разработывать, исправлять и тд. Но интерфейс для сервера имхо лишний. С DbaseType, IdFactoryType тоже, ибо только по одной реализации.
[Изображение: l2nextgen.gif]
Ответ
Да не очень удачно, блин, вообщем, потом, тогда там просто все в одном как бы не так будет ...
Кто сказал, что будет много интерфейсов, это пример.

Что вы так на меняSmile

Если честно мне интересно я для себя делаю, а так вообще все равно), потом может быть в шару кину))

Кому будет интересно посмотрят творение:redlol:

Добавлено через 7 минут
bloodshed;264272 Написал:какой профит от этого интерфейса?
Да от такого что то я не так написал, очепятка)) Да пофиг, как работают интерфейсы знаете думаю)))

Добавлено через 31 минуту
Чито так:

[src=java]public static void printGeneralSystemInfo() {
final Date Date = new Date();
final SimpleDateFormat SimpleDateFormat = new SimpleDateFormat("dd-MM-yyyy hh:mmConfuseds aa");
final String String = SimpleDateFormat.format(Date);
Logs.log(Levels.INFO, "..................................................\r\n"
+ "System time: " + String + "\r\n"
+ "..................................................\r\n"
+ "OS: " + Util.getSystemInfo("osName") + "\r\n"
+ "OS Version: " + Util.getSystemInfo("osVersion") + "\r\n"
+ "OS Arch: " + Util.getSystemInfo("osArch") + "\r\n"
+ "..................................................\r\n"
+ "Avaible CPU(s): " + Util.getAvailableProcessors() + "\r\n"
+ "Processor(s) Identifier: " + System.getenv("PROCESSOR_IDENTIFIER") + "\r\n"
+ "..................................................\r\n"
+ "Runtime Information\r\n"
+ "Current Free Heap Size: " + Util.getMemory("freeMemory") + " mb\r\n"
+ "Current Heap Size: " + Util.getMemory("totalMemory") + " mb\r\n"
+ "Maximum Heap Size: " + Util.getMemory("maxMemory") + " mb\r\n"
+ "..................................................\r\n"
+ "Java Platform Information\r\n"
+ "Java Runtime Name: " + Util.getSystemInfo("javaRuntimeName") + "\r\n"
+ "Java Version: " + Util.getSystemInfo("javaVersion") + "\r\n"
+ "Java Class Version: " + Util.getSystemInfo("javaClassVersion") + "\r\n"
+ "..................................................\r\n"
+ "Virtual Machine Information (JVM)\r\n"
+ "JVM Name: " + Util.getSystemInfo("jvmName") + "\r\n"
+ "JVM installation directory: " + Util.getSystemInfo("javaHome") + "\r\n"
+ "JVM version: " + Util.getSystemInfo("jvmVersion") + "\r\n"
+ "JVM Vendor: " + Util.getSystemInfo("jvmVendor") + "\r\n"
+ "JVM Info: " + Util.getSystemInfo("jvmInfo") + "\r\n"
+ "..................................................\r\n");
}[/src]



Ну и логичнее сделать так:

[src=java]public final class Levels extends Level implements Serializable {

private static final long serialVersionUID = 1L;
private static final String defaultBundle = "sun.util.logging.resources.logging";
public static final Level ERROR = Levels.setLevel("ERROR");
public static final Level CONNECT = Levels.setLevel("CONNECT");

protected Levels(final String name, final int value) {
super(name, value, Levels.defaultBundle);
}

private static Level setLevel(final String key) {
return new Levels(key, Integer.MAX_VALUE);
}
}

Levels.INFO

Levels.ERROR
[/src]


Big Grin

Добавлено через 57 минут
Оо

[src=java]public class Application {
public static void main(String... args) {
//Application.func1(); <- error
Application.func2(); //success -> func2
final Application Application = new Aplication();
Application.func1(); //success -> func1
Application.func2(); //success -> func2
}

public void func1() {
System.out.println("func1");
/*......*/
}

public static void func2() {
System.out.println("func2");
/*......*/
}
}[/src]
Ответ
Anikey Написал:Чито так:

[src=java]public static void printGeneralSystemInfo() {
final Date Date = new Date();
final SimpleDateFormat SimpleDateFormat = new SimpleDateFormat("dd-MM-yyyy hh:mmConfuseds aa");
final String String = SimpleDateFormat.format(Date);
Logs.log(Levels.INFO, "..................................................\r\n"
+ "System time: " + String + "\r\n"
+ "..................................................\r\n"
+ "OS: " + Util.getSystemInfo("osName") + "\r\n"
+ "OS Version: " + Util.getSystemInfo("osVersion") + "\r\n"
+ "OS Arch: " + Util.getSystemInfo("osArch") + "\r\n"
+ "..................................................\r\n"
+ "Avaible CPU(s): " + Util.getAvailableProcessors() + "\r\n"
+ "Processor(s) Identifier: " + System.getenv("PROCESSOR_IDENTIFIER") + "\r\n"
+ "..................................................\r\n"
+ "Runtime Information\r\n"
+ "Current Free Heap Size: " + Util.getMemory("freeMemory") + " mb\r\n"
+ "Current Heap Size: " + Util.getMemory("totalMemory") + " mb\r\n"
+ "Maximum Heap Size: " + Util.getMemory("maxMemory") + " mb\r\n"
+ "..................................................\r\n"
+ "Java Platform Information\r\n"
+ "Java Runtime Name: " + Util.getSystemInfo("javaRuntimeName") + "\r\n"
+ "Java Version: " + Util.getSystemInfo("javaVersion") + "\r\n"
+ "Java Class Version: " + Util.getSystemInfo("javaClassVersion") + "\r\n"
+ "..................................................\r\n"
+ "Virtual Machine Information (JVM)\r\n"
+ "JVM Name: " + Util.getSystemInfo("jvmName") + "\r\n"
+ "JVM installation directory: " + Util.getSystemInfo("javaHome") + "\r\n"
+ "JVM version: " + Util.getSystemInfo("jvmVersion") + "\r\n"
+ "JVM Vendor: " + Util.getSystemInfo("jvmVendor") + "\r\n"
+ "JVM Info: " + Util.getSystemInfo("jvmInfo") + "\r\n"
+ "..................................................\r\n");
}[/src]



Ну и логичнее сделать так:

[src=java]public final class Levels extends Level implements Serializable {

private static final long serialVersionUID = 1L;
private static final String defaultBundle = "sun.util.logging.resources.logging";
public static final Level ERROR = Levels.setLevel("ERROR");
public static final Level CONNECT = Levels.setLevel("CONNECT");

protected Levels(final String name, final int value) {
super(name, value, Levels.defaultBundle);
}

private static Level setLevel(final String key) {
return new Levels(key, Integer.MAX_VALUE);
}
}

Levels.INFO

Levels.ERROR
[/src]


Big Grin

Добавлено через 57 минут
Оо

[src=java]public class Application {
public static void main(String... args) {
//Application.func1(); <- error
Application.func2(); //success -> func2
final Application Application = new Aplication();
Application.func1(); //success -> func1
Application.func2(); //success -> func2
}

public void func1() {
System.out.println("func1");
/*......*/
}

public static void func2() {
System.out.println("func2");
/*......*/
}
}[/src]
Что это за рандом?)
[Изображение: l2nextgen.gif]
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Lineage][ C3 Сборки серверов + Клиент Verket 23 10,888 07-17-2024, 04:54 PM
Последний пост: AlexBayev
  новый взгляд на L2 Halifers 6 2,646 06-27-2023, 10:06 PM
Последний пост: Kampina
  Lineage 2 PTS 287 Protocol Проблема PSIFAK 1 1,372 01-25-2023, 04:08 AM
Последний пост: Phantom-Dev
  Помогите с Сервером L2Dream версии 439 для Lineage 2 Gracia Part 2 CAHTEX 4 3,369 10-01-2021, 02:40 PM
Последний пост: tenor
  Cборки серверов Lineage 2 под ключ xevilx 4 2,506 08-24-2021, 12:47 PM
Последний пост: xevilx
  Продам готовую сборку Lineage 2 HF l2starts 0 1,265 08-07-2021, 06:19 AM
Последний пост: l2starts
  Cборки серверов Lineage 2 под ключ Clyde 3 1,795 07-03-2021, 08:22 PM
Последний пост: Clyde
  Актуальная сборка Lineage 2 Esferol 7 2,664 02-03-2021, 06:39 PM
Последний пост: MorjeKor
  Вопросы по серверу Lineage 2 Shady 5 2,283 05-09-2020, 06:46 PM
Последний пост: freelu
  Набираю команду на новый проект l2-online.ru warjoker 11 3,015 04-27-2020, 03:37 AM
Последний пост: Magican

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)