Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有这样的设计模式吗?怎么称呼它?_Java_Design Patterns_Naming Conventions_Wrapper_Provider - Fatal编程技术网

Java 有这样的设计模式吗?怎么称呼它?

Java 有这样的设计模式吗?怎么称呼它?,java,design-patterns,naming-conventions,wrapper,provider,Java,Design Patterns,Naming Conventions,Wrapper,Provider,我有这样的设计: public interface MyInterface { public abstract List<Sth> getSth(); } public class MyConcreteImplementation implements MyInterface { private ConcreteSth mSth = new ConcreteSth(); public List<Sth> getSth(){ re

我有这样的设计:

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); 
    }
}
公共接口MyInterface{
公共摘要列表getSth();
}
公共类MyConcreteImplementation实现MyInterface{
private ConcreteSth mSth=新的ConcreteSth();
公共列表getSth(){
返回mSth.getSth(附加参数);
}
}
上面代码的目的是提供从其他类调用的统一方法

这可以称为模式吗?如果是,如何命名?

上面代码的目的是提供从其他类调用的统一方法

这听起来很像适配器。您希望某个类适合您的接口。这里的接口是
MyInterface
,而适配器是
ConcreteSth

工厂方法

工厂方法模式的本质是“定义用于创建对象的接口,但让子类决定实例化哪个类。工厂方法让类将实例化延迟到子类。”


我将其称为适配器:它围绕现有接口(即
ConcreteSth
)包装另一个方法(
MyInterface.getSth
),而不改变功能。

您只需遵循基本的面向对象设计。这对我来说似乎很简单,如果你真的喜欢一种设计模式,我可以把它扩展成一种形式。

我觉得它就像一个。它将
ConcreteSth
调整为
MyInterface


不管怎么说,如果它能完成你期望的工作,你应该问问它是否只是出于好奇的一种模式。

谁在乎它叫什么?你为什么需要它的名字?您只是使用一个接口来创建API。@Erick:当您希望同事使用某个名称时,您就开始关心它了。@Erick:使用通用术语来讨论代码可能是一件相当有用的事情。能够为某事物使用精确的名称可以减少由于更详细的描述而导致的任何潜在歧义,并允许开发可用的速记。如果您总是在模式中谈论代码,您将只能与理解模式的人一起工作。如果您只是构建了有意义的好API,任何程序员都可以理解它。此外,他们会想使用它,因为它解决了一个问题。我理解这种方法需要更多的个人责任。@Erick:这个问题没有错。与SO中的一些其他问题相比,这与编程有很大关系。识别应用程序中的设计模式可以使读者轻松理解如何正确维护应用程序。很抱歉但我真的不同意你的看法。这里面没有创造。这不是工厂模式。我认为不需要告诉适配器它应该使用哪个适配器。@bozho-你认为我的答案如何?:)@我想你应该。否则,它如何知道要适应什么?请参阅的Java部分中的示例:。不需要告诉适配器它使用的适配器。LegacyLine、LegacyRectangle、Shape的代码也许我们根本不应该有设计模式。它们毕竟只是组合、关系等的组合。设计模式有助于经验不足的程序员了解在面向对象设计中可以做什么。将模式重新装配到您已经创建的代码上以解决问题是完全不同的。关键在于:“上面代码的目的是提供从其他类调用的统一方法。”听起来对我来说真的是一个适配器…在你开始担心设计模式之前,你真的需要了解面向对象设计的基本知识:)你是否认为我和OP都不了解OOD的基本知识?