![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
mingdeblog
这个作者很懒,什么都没留下…
展开
-
李建忠装饰模式
李建忠装饰模式 Table of Contents 1. 原有软件 : 用继承来扩展Stream类 2. 软件问题 : 对继承的不良使用, 导致继承得到的类太多, 并且每个类中都有重复的操作, 运用装饰模式, 将继承改为组合 3. 软件依然有改进的地方 : CryptoStream和BufferedStream共有了Stream* stream, 按照设计模式, 应该将 4. 总结 : ...原创 2020-02-02 22:09:59 · 208 阅读 · 0 评论 -
李建忠工厂方法
李建忠工厂方法 Table of Contents 1. 创建对象时, 由于需求的变化, 需要创建的对象的具体类型经常变化 2. 需求可能发生变化, 造成问题 3. 解决办法 : 面向接口编程, 构造抽象基类 4. 对原来用new创建FileSplitter对象的代码进行修改 5. 依然有问题, 违背依赖倒置原则 6. 解决方法 : 绕开new操作符, 设计一个虚方法来创建对象, 将...原创 2020-01-31 23:43:13 · 522 阅读 · 0 评论 -
李建忠观察者模式
Table of Contents 1. 软件功能 : 在GUI界面点击按键分割文件,并显示文件分割的进度条 2. 软件存在的问题 : 违反依赖倒置原则, FileSplitter依赖于 ProgressBar, 即上层依赖于下层, 而下层是容易变化的, 所以要隔离变化 3. 解决办法 : 上层与下层均应该依赖于抽象, 而且抽象不能依赖于实现细节 1软件功能 : 在GUI界面点击按键分割文...原创 2020-01-31 10:16:49 · 204 阅读 · 0 评论