设计模式学习心得。

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

1,原型模式:

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

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

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

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

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

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

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

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

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

...全文
493 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2016-09-03
  • 打赏
  • 举报
回复
指挥者?Command吧,一般翻译成命令模式。 设计模式中的大部分模式对于C#没什么用。
王志威丶 2016-09-03
  • 打赏
  • 举报
回复
我最近也在学习设计模式,看的时候,感觉挺简单,但是自己有时候做东西的时候,就不知道该怎么去封装了。只能是说尽可能的让代码灵活,复用....好想找个大神抱抱大腿
摇撼大地 2016-09-03
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
指挥者?Command吧,一般翻译成命令模式。 设计模式中的大部分模式对于C#没什么用。
这个是他建造者里面的一个类,包装了一个建造者。我感觉没啥必要。 恩。顶多是一个思路。现在看了10来个模式。感觉名字很高大上,其实也就那样。平常无意识中也用过。被他总结说出来,感觉稍微有点区别。

110,538

社区成员

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

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

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