saurabh.15in Ответов: 1

Шаблон дизайна с различным типом возврата


Привет,

У меня есть класс, который имеет определенную функциональность, и тип возвращаемого значения - "A" (просто предположение)
Мне нужно создать несколько классов, которые будут просто использовать данные "а", делая некоторые настройки и возвращая их в другом формате. (Скажем, то возвращение "тип Б" и класса C возвращение "Тип C".
И тип B, и Тип C используют одни и те же данные "A", но с небольшим количеством настроек и небольшим количеством добавленных данных.

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

С уважением,
Саурабх

Что я уже пробовал:

Я проанализировал шаблон builder, adapter и factory. Но все они возвращают либо void, либо один и тот же тип данных. Я хочу, чтобы мой тип возврата был другим.

lw@zi

Эти классы простые объекты переноса данных, или есть еще какие функции на них? Возможно, какой-то код, который вы пробовали, поможет.

CHill60

Шаблоны проектирования конструктора или адаптера являются подходящими. Если вы получаете неправильные типы возвращаемых данных, то это должно быть то, как вы их закодировали. Используйте ссылку "улучшить вопрос" в своем посте, чтобы показать нам свой код.
Кстати - класс не имеет "возвращаемого типа" - метод класса может иметь возвращаемый тип, но не сам класс.

Richard MacCutchan

Я думаю, что у вас есть недопонимание о классах. Это также звучит так, как будто все, что вам действительно нужно, - это базовый класс, A и дочерние классы, B и C, которые наследуют A.

saurabh.15in

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

Web API - Class A - Method M->тип возвращаемого значения (пользовательский класс B)

Клиент - X - потребляющий метод M веб-API (это wprking fine).

Теперь у меня есть еще несколько клиентов.

Клиент - Y- (нужны те же данные, которые возвращаются веб - API - классом A-методом B, но в другом формате)

Точно так же у нас есть еще несколько клиентов, которым нужны те же данные, но в другом формате.)

1 Ответов

Рейтинг:
2

Gerry Schmitz

Используйте "компонентную стратегию / паттерн" (или что-то еще):

Public Class A { ... }

Public Class B {
   public A ClassA {get;set;}
   ...
}

Public Class C {
   public A ClassA {get;set;}
   ...
}


saurabh.15in

Спасибо Джерри, я изучаю шаблон компонентной стратегии и постараюсь его реализовать.

Gerry Schmitz

Отличный. Многие (более новые) "системы" строятся (или могут быть построены) исключительно с использованием готовых компонентов, которые могут быть сконфигурированы (игровые движки; конвейеры машинного обучения; SAP process engineering).

http://gameprogrammingpatterns.com/component.html