日常知识通
柔彩主题三 · 更轻盈的阅读体验

设计模式三大类:让家里的事也井井有条

发布时间:2025-12-27 06:31:06 阅读:106 次

你有没有发现,家里那些用起来特别顺手的东西,往往背后都藏着某种“套路”?比如厨房的调料架按使用频率摆,衣柜分区挂当季衣服,这些其实都是在用“模式”解决问题。软件开发里也有似的智慧,叫“设计模式”,它们被分成三大类:创建型、结构型和行为型。

创建型:怎么把东西“生”出来

就像你不会每次做饭都从种菜开始,程序里对象的创建也有省事的办法。创建型模式关注的是“怎么new一个对象”。比如单例模式,确保全家只有一个路由器管理入口,谁连Wi-Fi都得通过它,避免冲突。

class Router {
    private static Router instance;
    
    private Router() {}
    
    public static Router getInstance() {
        if (instance == null) {
            instance = new Router();
        }
        return instance;
    }
}

这就像家里那台万能遥控器,只此一个,谁要用都得找它。

结构型:怎么把零件拼起来

装修时,你会把插座、开关、灯具合理组合成电路系统,而不是乱拉电线。结构型模式就是干这个的。比如适配器模式,让你的日版游戏机插上变压器就能在家用插座上运行。

class JapanesePlug {
    public void plugIn() {
        System.out.println("日版插头已插入");
    }
}

class Adapter {
    private JapanesePlug plug;
    
    public Adapter(JapanesePlug plug) {
        this.plug = plug;
    }
    
    public void powerOn() {
        plug.plugIn();
        System.out.println("电源已接通");
    }
}

代码里的“变压器”,让不兼容的东西也能协同工作。

行为型:大家怎么配合干活

一家人过日子,谁洗碗、谁倒垃圾,得有默契。行为型模式管的就是对象之间的职责划分和通信方式。比如观察者模式,像你妈在厨房烧水,水开了壶哨一响,全家都知道该去关火。

interface Observer {
    void update();
}

class Kettle {
    private List<Observer> observers = new ArrayList<>();
    
    public void addObserver(Observer o) {
        observers.add(o);
    }
    
    public void boil() {
        System.out.println("水开了!");
        for (Observer o : observers) {
            o.update();
        }
    }
}

这种模式让变化自动通知到相关方,不用挨个敲门问。

其实生活处处是设计模式。你整理书架的方式可能用了“装饰者”,定闹钟起床是“策略模式”的体现。理解这三类模式,不只是写代码更顺,连过日子都能更清爽。