Улучшение сцепления штампа

Я изучаю программирование в колледже Stamp Coupling. Мы изучаем системный анализ и проектирование. Мой одноклассник задал мне вопрос, как решить Stamp Coupling? Я спрашиваю Учителя, который сказал: «Используйте интерфейс для ограничения доступа клиентов», но я все еще неправильно понимаю. введите здесь описание изображения введите здесь описание изображения


person LiHao    schedule 14.12.2017    source источник
comment
Это слишком широко, чтобы ответить. Вам нужно будет сообщить нам конкретный случай, в котором вам нужно решить соединение штампа (желательно с соответствующим кодом).   -  person Eran    schedule 14.12.2017
comment
Возможный дубликат Не могу понять принципы SOLID и шаблоны проектирования   -  person rkosegi    schedule 14.12.2017
comment
@Eran Извините, я пропустил вопрос, я уже редактирую и добавляю заголовок вопроса.   -  person LiHao    schedule 14.12.2017


Ответы (1)


Ну, так как метод печати нуждается только в имени, адресе и платежной информации Заказчика, вам не нужно передавать ему что-либо еще.

Вы можете определить интерфейс:

public interface PrintableCustomer
{
    public ... getName();
    public ... getAddress();
    public ... getBillingInfo();
}

Теперь пусть класс Customer реализует PrintableCustomer.

Метод печати теперь может принимать PrintableCustomer вместо Customer.

void print (PrintableCustomer customer)
{
    ...
}

Теперь print() видит только те свойства, которые ему нужны.

person Eran    schedule 14.12.2017