`

外观模式/门面模式Facade 为了更好地划分访问的层次

阅读更多
public interface AModuleApi {
  public void testA();
}

public class AModuleImpl implements AModuleApi {
  public void testA() {
    System.out.println("testA");
  }
}

public interface BModuleApi {
  public void testB();
}

public class BModuleImpl implements BModuleApi {
  public void testB() {
    System.out.println("testB");
  }
}

public interface CModuleApi {
  public void testC();
}

public class CModuleImpl implements CModuleApi {
  public void testC() {
    System.out.println("testC");
  }
}

public class Facade {
  public void test() {
    AModuleApi a = new AModuleImpl();
    a.testA();
    BModuleApi b = new BModuleImpl();
    b.testB();
    CModuleApi c = new CModuleImpl();
    c.testC();
  }
}

在客户端可以直接使用下面代码:
new Facade().test();

有外观,可以不使用,直接调用模块方法。

也可以吧Facade实现成interface.此时还需要一个得到Facade接口对象的工厂。
分享到:
评论

相关推荐

    C++设计模式课件14_Facade_门面模式.pdf

    3. **提供更好的分层结构**:在大型系统中,门面模式有助于更好地组织代码,实现模块化管理。 4. **易于维护和扩展**:当子系统内部发生变化时,只需修改门面类即可,而无需修改客户端代码。 #### 三、门面模式的...

    设计模式之门面模式

    通过学习这些示例,我们可以更好地理解门面模式的实现方式,以及如何在实际开发中利用门面模式优化代码结构,提高代码的可读性和可维护性。 总的来说,门面模式是一种强大的工具,能够帮助我们处理复杂系统的集成...

    23种设计模式--门面模式

    通过学习和熟练运用门面模式,开发者可以更好地应对复杂系统的设计和开发挑战。 在提供的资源“第17课_设计模式之门面模式.avi”中,可能包含了对门面模式的详细讲解和实例演示,可以帮助你更深入地理解和掌握这一...

    二十三种设计模式【PDF版】

    设计模式之 Facade(门面?) 可扩展的使用 JDBC针对不同的数据库编程,Facade提供了一种灵活的实现. 设计模式之 Composite(组合) 就是将类用树形结构组合成一个单位.你向别人介绍你是某单位,你是单位中的一个元素...

    7.设计模式-门面模式1

    门面(Facade)模式是一种设计模式,它在软件工程中被广泛使用,目的是为了提供一个更简单、更统一的接口来访问复杂的子系统。通过门面模式,客户端(调用者)无需直接与子系统中的多个组件交互,而是只需要与门面...

    示例外观模式

    外观模式(Facade Pattern)是一种设计模式,主要用于简化系统或组件的接口,提供一个更高级别的、统一的访问方式,使得...通过学习和实践这个示例,你将能够更好地掌握如何在实际开发中运用外观模式,提高代码质量。

    Clean Architecture - Patterns, Practices, and Principles.part4

    通过阅读和分析这个项目,开发者可以更好地理解如何在实际项目中实施Clean Architecture,从而提高软件质量,降低维护成本。 总的来说,《Clean Architecture - Patterns, Practices, and Principles》提供的知识...

    超级有影响力霸气的Java面试题大全文档

    1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是...

    Laravel开发-tactician-for-laravel

    在 Laravel 5 中集成 Tactician,可以为你的项目带来许多优点,包括更好的代码组织、更清晰的职责划分以及更高的可测试性。 首先,了解什么是命令巴士(Command Bus)。命令巴士是一种设计模式,用于将应用的业务...

    pureMVC.rar源码

    在Flex项目中,PureMVC的应用能够帮助开发者更好地组织代码,实现业务逻辑和界面展示的分离。 **Model(模型)** 在PureMVC中,模型层负责处理应用的数据和业务逻辑。开发者可以通过创建`Proxy`类来封装数据服务,...

    Laravel开发-laravel-modules

    综上所述,Laravel Modules 是一种优秀的解决方案,它帮助开发者更好地管理大型 Laravel 项目的复杂性,使代码结构更加有序,提升开发效率。在实际项目中,结合最佳实践,可以充分利用其优势,构建出高质量的 ...

    Laravel开发-hack

    **Laravel 开发黑客技术详解** ...本文将深入探讨如何在Laravel开发过程中应用“黑客”技术,即巧妙地利用Laravel的特性进行非侵入式的封装,...在实际开发中,不断探索和实践,才能更好地驾驭Laravel的“黑客”之道。

    EAS开发

    【EAS开发】详解 EAS(Enterprise Application Suite)是一种企业级应用软件系统,用于集成企业的各种业务流程和数据管理。...开发者需要深入学习EAS的API和框架,以便更好地设计和实现高效、稳定的企业级应用程序。

Global site tag (gtag.js) - Google Analytics