图解设计模式 -- 简单化

本文详细解析了设计模式中的Facade模式和Mediator模式。Facade模式用于简化复杂系统的接口,提供一个统一的入口,减少客户端与系统组件间的交互复杂性。Mediator模式则用于协调多个对象之间的通信,避免对象间直接耦合,提高代码可维护性。文中通过代码示例展示了这两种模式的应用。
摘要由CSDN通过智能技术生成

代码Github连接 :https://github.com/tangbi123/Tab-Design-Pattern

Facade

可以为互相关联在一起地错综复杂地类整理出高层接口(API),让系统对外只有一个简单的接口(API),并且考虑系统内部各个类之间地责任关系和依赖关系,按照正确地顺序调用各个类。

示例

在这里插入图片描述
在这里插入图片描述
文件结构
在这里插入图片描述

代码清单

1)Database

public class Database {
   
    private Database(){
   }
    public static Properties getProperties(String dbname){
   
        String filename = dbname + ".txt";
        Properties prop = new Properties();
        try{
   
            prop.load(new FileInputStream(filename));
        }catch (IOException e){
   
            System.out.println("warning:" + filename + "is not found.");
        }
        return prop;
    }
}

mailData.txt

hyuki@hyuki.com=Hiroshi Yuki
hanako@hyuki.com=Hanako Sato
tomura@hyuki.com=Tomura
mamoru@hyuki.com=Mamoru Takahashi

2)HtmlWriter

public class HtmlWriter {
   
    private Writer writer;

    public HtmlWriter(Writer writer) {
   
        this.writer = writer;
    }
    public void title(String title)throws IOException{
   
        writer.write("<html>");
        writer.write("<head>");
        writer.write("<title>" + title + "</title>");
        writer.write("</head>");
        writer.write("<body>\n");
        writer.write("<h1>" + title + "</h1>\n");
    }

    public void paragraph(String msg) throws IOException {
   
        writer.write("<p>" + msg + "</p>");
    }

    public void link(String href, String caption)throws IOException{
   
        paragraph("<a href = \"" + href + "\">"
        + caption + "</a>");
    }

    public void mailto(String mailaddr, String username)throws IOException{
   
        link("mailto:" 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值