1 / 1 / 1
Регистрация: 26.09.2015
Сообщений: 40
1

Как создать конструктор в интерфейсе

26.02.2016, 16:24. Показов 5494. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, подскажите, пожалуйста, как создать конструктор в интерфейсе. И если нельзя, то чем заменить? мне нужно, чтобы в класс передавался определенный параметр.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2016, 16:24
Ответы с готовыми решениями:

Как создать базу данных в ООП интерфейсе?
как создать базу данных в ооп интерфейсе, а если она существует то чтоб вызывалась. в sqlite это...

Как создать объект с конструктором в интерфейсе другого класса?
struct WorkerInfo { WorkerInfo(int iPay, int iDebt) : pay (iPay), iDebt(debt) {} ...

Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно»
Помогите пожалуйста, хоть с одним из заданий. 1. Создать класс. Написать конструктор по...

Конструктор. Как создать
У меня есть класс Point #include "StdAfx.h" #include "Tochka.h" # include <iostream> # include...

7
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
26.02.2016, 16:26 2
wikkk, покажите пример где вам нужен конструктор в интерфейсе? Может вам лучше абстрактный класс?
0
1 / 1 / 1
Регистрация: 26.09.2015
Сообщений: 40
26.02.2016, 17:05  [ТС] 3
Это учебный проект - игровой сервер. Игроки могут друг друга приглашать сыграть. Если один игрок принял предложение или оба друг друга пригласили, то этот класс - InvitationManager - вызовет метод startGame у объекта GameServer, который ему передали в конструкторе. Я подумал, что неплохо было бы сделать интерфейс для класса InvitationManager. Но как вынести конструктор?


Вот интерфейс:
Java
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
public interface IInvitationManager
{
    
    // Конструктор бы...
    IInvitationManager(final GameServer gameServer);
    
    /**
     * sourceUser приглашает targetUser сыграть
     * @param sourceUser
     * @param targetUser 
     */
    void invite(final User sourceUser, final User targetUser);
    
    /**
     * sourceUser отменяет отосланное игроку targetUser приглашение
     * @param sourceUser
     * @param targetUser 
     */
    void cancelInvite(final User sourceUser, final User targetUser);
    
    /**
     * targetUser принимает приглашение сыграть
     * @param sourceUser
     * @param targetUser 
     */
    void acceptIncomingInvite(final User sourceUser, final User targetUser);
    
    /**
     * argetUser отменяет приглашение сыграть
     * @param sourceUser
     * @param targetUser 
     */
    void rejectIncomingInvite(final User sourceUser, final User targetUser);
    
    /**
     * Возвращает список игроков, пригласивших targetUser сыграть
     * @param targetUser 
     * @return  
     */
    Set<User> getIncomingInviters(final User targetUser);
    
    /**
     * Управляет временем жизни отосланных приглашений.
     * Должен вызываться из игровго ицкла. Метод можно вызывать каждую игровую итерацию:
     * Класс сам следит когда нужно запустить обработку внутри себя.
     */
    void manageTTLs();
    
}
0
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
26.02.2016, 17:30 4
А сделайте класс InvitationEvent extends EventObject. И определите методы интерфейса с входным InvitationEvent'ом
1
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
26.02.2016, 17:55 5
Лучший ответ Сообщение было отмечено wikkk как решение

Решение

wikkk, зачем вам в вашем случае вообще интерфейс? Насколько я понял, подразумевается один менеджер на всю программу (он должен быть синглтон в таком случае).
2
1 / 1 / 1
Регистрация: 26.09.2015
Сообщений: 40
26.02.2016, 18:07  [ТС] 6
RedPatrick, приведите пример, пожалуйста, не очень понимаю для чего это...

KEKCoGEN, ну, ход мыслей был: "... вроде как неплохо сделать интерфейс - мало ли - пригодится когда..."

По идее, да, один менеджер приглашений на один GameServer. А запускать больше одного GameServer'а с одной программы смысла нет: зачем такой функционал? Лучше запустить ещё одну копию программы.
0
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
26.02.2016, 18:36 7
Цитата Сообщение от wikkk Посмотреть сообщение
од мыслей был: "... вроде как неплохо сделать интерфейс - мало ли - пригодится когда..."
так себе ход мыслей мягко говоря....создайте ещё ненужных классов.

Вобщем ответ на ваш вопрос - в интерфейсе нельзя создать конструктор. Интерфейс это контракт общения с внешним миром. Конструктор тут никаким боком.
0
1 / 1 / 1
Регистрация: 26.09.2015
Сообщений: 40
26.02.2016, 18:56  [ТС] 8
Я просто подумал - вдруг - теоретически - кто-то захочет создать более функциональный "менеджер приглашений"... чтоб он оперировал условиями соглашений, например..

Спасибо, аа... можно ещё проконсультироваться в целом по архитектуре... По логике лучше всего создать синглтон для класса InvitationManager?
Это лучше сделать статическим методом getInstance?
0
26.02.2016, 18:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2016, 18:56
Помогаю со студенческими работами здесь

Как создать конструктор класса?
Надо создать класс с конструктором сеттером и геттером. Я решил что конструктор будет делать пустые...

Как создать такой конструктор?
Добрый день, нужно создать конструктор класса без &quot;new&quot; и передать туда значения. Собственно как...

Как создать перегруженный конструктор?
Мне нужно сделать так, что бы один конструктор вызывал другой при создании экземпляра класса. То...

Как создать класс не вызывая конструктор
Всем привет, кто знает как создать новый экземпляр класса не вызывая конструктор?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru