【问题标题】:Need help on Java design pattern在 Java 设计模式方面需要帮助
【发布时间】:2015-04-13 20:09:14
【问题描述】:

你能为以下场景推荐一些好的设计模式吗:

我们有多家供应商,分别称为公司 A、B 和 C。每家公司都有自己的业务逻辑。

【问题讨论】:

  • “我想写一些包装类,它应该决定调用哪个公司,覆盖所有通用方法并执行所有操作。”你为什么要这样做?这似乎抛弃了你上面描述的一切。无论如何,听起来它可能是一个代理模式。

标签: java oop design-patterns


【解决方案1】:

对我来说闻起来像策略模式:link

内部接口定义将由具体供应商执行的方法。具体的供应商必须实现接口并添加自己的方法(策略)实现。

【讨论】:

    【解决方案2】:

    为此,您可以使用以下模式

    Abstract Factory

    Proxy Factory

    Strategy

    还请考虑下图。

    【讨论】:

      【解决方案3】:

      您可以使用CompanyTemplate 接口,其中包含公司ABC 应实现的所有常用方法 -

      public interface CompanyTemplate{
      
         public someCommonMethod();
      
      }  
      

      之后A 可以补充CompanyTemplate -

      public class A implements `CompanyTemplate` {
      
        public void someCommonMethod(){
           //implementation code
        }  
      
        //Other methods special only for company for A
      
      }
      

      【讨论】:

        【解决方案4】:

        如果您的业务逻辑与不同供应商的creation of different objects 相关,您可以使用Factory Method / Factory_ 模式。

        如果你的业务逻辑与change behaviour of system相关,针对不同的厂商,可以使用Strategy_pattern

        有关这些模式的更多详细信息,请参阅相关的 SE 问题:

        Real World Example of the Strategy Pattern

        What is the basic difference between the Factory and Abstract Factory Patterns?

        What is the difference between Factory and Strategy patterns?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-02
          • 2011-07-17
          • 1970-01-01
          • 1970-01-01
          • 2017-11-28
          相关资源
          最近更新 更多