11 2022 档案
摘要:简述 将各个功能拆分后分别封装(各功能解耦),需要时可自由组合(包括执行顺序) 话不多说,看个优化案例吧。 优化案例 最初版 以下是模拟客户端想服务端发送请求的业务流程。 客户端调用代码如下。 // 客户端 public class Client { public static void main(
阅读全文
摘要:简述 运行时,为原对象拓展新的行为。 相较于传统的继承来拓展新的行为,装饰器模式更为的灵活多变,当然实现起来也更为复杂。 话不多说,看个优化案例吧。 优化案例 最初版v0 现有系统中有设定窗口Style的模块,现在想增加一个圆角的样式。以下是现有模块的代码。 class Style { public
阅读全文
摘要:简述 对客户端隐藏目标类,创建代理类拓展目标类,并且对于客户端隐藏功能拓展的细节,使得客户端可以像使用目标类一样使用代理类,面向代理(客户端只与代理类交互)。 话不多说,看一个优化案例。 优化案例 最初版v0 目前的功能是下载可以下载文件。 public class BiliBiliDownload
阅读全文
摘要:简述 预先定义有着不同执行过程但结果相同的算法族,运行时指定所需算法。 算法族 此处为一组有共同主题的有相同结果的不同算法的集合。 话不多说,看个优化案例。 优化案例 最初版v0 不使用策略模式的案例。四种不同的计算策略。客户端的代码如下。 // 客户端 public class Client {
阅读全文