设计模式学习心得。

摇撼大地 2016-09-02 09:03:07
又看了几个设计模式。希望大神指点,看我说的对不对。

1,原型模式:

就是对象的复制。集成ICloneable接口。深层复制,包含的对象也需要集成IClongeable接口。

应用场景:对象创建挺复杂的时候。用复制比较快。也方便。
2,模板模式:
就是把父类的具体行为,延迟到子类中。

具体做法就是把变化的部分,写成virtual 型方法。
然后子类继承父类,并重写这部分内容。这样就实现了父类功能的具体化。也利于以后扩展。因为要被重写,所以父类作为模板,一般都是抽象类。

应用场景。有一个方法,被大量的用于多个子类,子类调用起来都要写很多重复的代码。
就需要提炼这个方法,写一个虚方法。然后子类去重写。这样重复的代码就被父类执行了。子类只执行不同的地方。就可以了。

3,外观模式:
把一些旧的方法,或者几个相关性非常强,互相联系很紧密,或者旧系统,功能很多的好多类,集成成一个,对外开放需要开放的接口。

应用场景:旧系统,重构太多的情况下。用新的接口封装功能。

4,建造者模式:
当一个对象创建的过程非常复杂。应该把创建步骤打包。并提供单独的Create方法。把具体的个性化的创建方法写成虚方法。子类可以重写他的方法。

书上的还有一个指挥者类。我觉得没啥必要。直接写到创造者里面,似乎没啥区别。

应用场景:对象的创建过程非常复杂。需要很多步骤,直接创建容易出错,这样就把创建过程写成长方法,并返回创建好的对象。然后把个性化的创建过程写成虚方法。让子类去重写。

...全文
539 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2016-09-03
  • 打赏
  • 举报
回复
指挥者?Command吧,一般翻译成命令模式。 设计模式中的大部分模式对于C#没什么用。
王志威丶 2016-09-03
  • 打赏
  • 举报
回复
我最近也在学习设计模式,看的时候,感觉挺简单,但是自己有时候做东西的时候,就不知道该怎么去封装了。只能是说尽可能的让代码灵活,复用....好想找个大神抱抱大腿
摇撼大地 2016-09-03
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
指挥者?Command吧,一般翻译成命令模式。 设计模式中的大部分模式对于C#没什么用。
这个是他建造者里面的一个类,包装了一个建造者。我感觉没啥必要。 恩。顶多是一个思路。现在看了10来个模式。感觉名字很高大上,其实也就那样。平常无意识中也用过。被他总结说出来,感觉稍微有点区别。
[14本经典Android开发教程] 8 Linux内核阅读心得体会 读核感悟 2 读核感悟 Linux内核启动 内核的生成 2 读核感悟 Linux内核启动 从hello world说起 3 读核感悟 Linux内核启动 BIOS 5 读核感悟 Linux内核启动 setup辅助程序 6 读核感悟 Linux内核启动 内核解压缩 8 读核感悟 Linux内核启动 开启页面映射 9 读核感悟 Linux内核启动 链接脚本 11 读核感悟 伪装现场 系统调用参数 13 读核感悟 伪装现场 fork 系统调用 15 读核感悟 伪装现场 内核线程: 17 读核感悟 伪装现场 信号通信 19 读核感悟 kbuild系统 内核模块的编译 22 读核感悟 kbuild系统 编译到内核和编译成模块的区别 24 读核感悟 kbuild系统 make bzImage的过程 26 读核感悟 kbuild系统 make menuconfig 31 读核感悟 文件系统 用C来实现面向对象 32 读核感悟 设计模式 用C来实现虚函数表和多态 32 读核感悟 设计模式 用C来实现继承和模板 33 读核感悟 设计模式 文件系统和设备的继承和接口 34 读核感悟 设计模式 文件系统与抽象工厂 36 读核感悟 阅读源代码技巧 查找定义 37 读核感悟 阅读源代码技巧 变量命名规则 42 读核感悟 内存管理 内核中的页表映射总结 43 读核感悟 健壮的代码 exception table 内核中的刑事档案 44 读核感悟 定时器 巧妙的定时器算法 45 读核感悟 内存管理 page fault处理流程 45 读核感悟 文件读写 select实现原理 47 读核感悟 文件读写 poll的实现原理 49 1 功能介绍: 49 2 关键的结构体: 49 3 poll的实现 49 4 性能分析: 50 读核感悟 文件读写 epoll的实现原理 50 1 功能介绍 50 2 关键结构体: 51 3 epoll create的实现 53 4 epoll ctl的实现 53 5 epoll wait的实现 54 6 性能分析 54 读核感悟 同步问题 同步问题概述 55 1 同步问题的产生背景 55 2 内核态与用户态的区别 55 读核感悟 同步问题 内核态自旋锁的实现 56 1自旋锁的总述 56 2非抢占式的自旋锁 56 3 锁的释放 57 4 与用户态的自旋锁的比较 57 5 总结 58 读核感悟 内存管理 free命令详解 58 读核感悟 文件读写 2 6 9内核中的AIO 59 1 AIO概述 59 2 内核态AIO的使用 61 读核感悟 文件读写 内核态AIO相关结构体 61 1 内核态AIO操作相关信息 61 2 AIO上下文: 63 3 AIO ring 63 4 异步I O事件的返回信息 64 读核感悟 文件读写 内核态AIO创建和提交操作 65 1 AIO上下文的创建 io setup 65 2 AIO请求的提交:io submit实现机制 66 读核感悟 文件操作 AIO操作的执行 66 1 在提交时执行AIO 66 2 在工作队列中执行AIO 66 3 负责AIO执行的核心函数aio run iocb 67 4 AIO操作的完成 67 读核感悟 文件读写 内核态是否支持非direct I O方式的AIO 67 已上传7本: [14本经典Android开发教程] 1 Android开发从入门到精通 http: download csdn net detail cleopard 8355245 [14本经典Android开发教程] 2 Android开发手册 API函数详解 http: download csdn net detail cleopard 8374487 [14本经典Android开发教程] 3 Android SDK 中文开发文档 http: download csdn net detail cleopard 8380429 [14本经典Android开发教程] 4 Android应用程序开发36技 http: download csdn net detail cleopard 8380495 [14本经典Android开发教程] 5 linux Android基础知识总结 http: download csdn net detail cleopard 8380529 [14本经典Android开发教程] 6 Android驱动开发入门及手机案例开发分析教程 http: download csdn net detail cleopard 8388019 [14本经典Android开发教程] 7 Android编程入门教程 http: download csdn net detail cleopard 8388043 剩余8本稍后上传 @或直接从这里寻找@ http: download csdn net user cleopard album @更多@ http: cleopard download csdn net 福利 http: xuemeilaile com 17份软件测试文档 http: download csdn net album detail 1425 13份WPF经典开发教程 http: download csdn net album detail 1115 C#资料合辑二[C#桌面编程入门篇] http: download csdn net album detail 957 C#资料合辑一[C#入门篇] http: download csdn net album detail 669 [Csharp高级编程 第6版 ] 共8压缩卷 http: download csdn net album detail 667 10个[精品资源]Java学习资料合辑[一] http: download csdn net album detail 663 10个C#Socket编程代码示例 http: download csdn net album detail 631 6份GDI+程序设计资源整合[全零分] http: download csdn net album detail 625 2014年移动游戏行业数据分析 http: download csdn net detail cleopard 8340331 一文读懂2014年全球互联网广告新生态 http: download csdn net detail cleopard 8340303">[14本经典Android开发教程] 8 Linux内核阅读心得体会 读核感悟 2 读核感悟 Linux内核启动 内核的生成 2 读核 [更多]

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧