Есть ли такой шаблон дизайна?Как это назвать? - PullRequest
2 голосов
/ 24 сентября 2010

У меня такой дизайн:

public interface MyInterface {
    public abstract List<Sth> getSth();
}

public class MyConcreteImplementation implements MyInterface {
    private ConcreteSth mSth = new ConcreteSth();

    public List<Sth> getSth(){
        return mSth.getSth(additionalParams); 
    }
}

Цель приведенного выше кода - предоставить унифицированный метод для вызова из других классов.

Можно ли это назвать шаблоном? Если так, как назвать это?

Ответы [ 5 ]

5 голосов
/ 24 сентября 2010

Это выглядит как Адаптер .Он адаптируется ConcreteSth к MyInterface.

В любом случае, если он выполняет ту работу, которую вы ожидаете от него, вам следует спросить о том, является ли это паттерн только из любопытства.

3 голосов
/ 24 сентября 2010

Вы просто следуете базовому объектно-ориентированному дизайну здесь .Для меня это выглядит просто Композиция , и если вы действительно заинтересованы в шаблоне дизайна, я мог бы растянуть его до формы делегат .

1 голос
/ 24 сентября 2010

Адаптер

Цель приведенного выше кода - предоставить унифицированный метод для вызова из других классов.

Это действительно звучит как Адаптер. Вы хотите иметь определенный класс, адаптированный к вашему интерфейсу. Интерфейс здесь MyInterface, а адаптер ConcreteSth.

0 голосов
/ 24 сентября 2010

Я бы назвал его адаптером: он оборачивает другой метод (MyInterface.getSth) вокруг существующего интерфейса (т. Е. ConcreteSth) без изменения функциональности.

0 голосов
/ 24 сентября 2010

Заводской метод?

Суть метода Factory в шаблоне заключается в том, чтобы «определить интерфейс для создания объекта, но позволить подклассам решать, какой класс создавать для экземпляра. Метод Factory позволяет классу отложить создание экземпляров для подклассов».

http://en.wikipedia.org/wiki/Factory_method_pattern

...