设计模式学习心得(持续更新)

本博文仅仅是笔者自己的学习路线,归纳整理了一些好的设计模式资料。

1、策略模式

参考资料:c#设计模式-策略模式?c#设计模式之策略模式 ?C#设计模式(20)——策略者模式(Stragety Pattern)

策略模式的实现有解耦的表现——Context类

注意: 如果优化的话,可以使用抽象类,将变化的算法设为抽象方法,或虚方法,这样让子类对该方法进行实现即可,同样可以实现该需求,而且代码重用性应该会更好

2、工厂模式

参考资料:C#设计模式(3)——工厂方法模式 ?C#设计模式(1)——简单工厂模式 ? C#设计模式(2)——工厂模式

由简单工厂模式到工厂模式的演进,是设计模式的原则之一:开放封闭原则 推进的。这一点在我们日常开发中有很明显的体现,我个人也是"后知后觉"。代码的开发应该对扩展开放,对修改封闭。

对比了下策略模式与工厂模式的实现,我发现其实可以很简单实现两者的相互转换:抽象和具体都是变动,策略模式中的Context层替换为工厂模式中的工厂层,就OK了。但是两者的含义不一样。从代码来分析,策略模式是在客户端已经明确了产品,工厂模式则是将产品委托给了工厂来创建。可参考? 简单工厂模式与策略模式的区别

原文地址:https://www.cnblogs.com/zhiyong-ITNote/p/10861452.html

时间: 2024-08-03 03:37:07

设计模式学习心得(持续更新)的相关文章

linux学习资料持续更新中

一.LINUX基础教程 1.老男孩系列免费视频: 1) linux高薪入门实战视频教程(第二部)老男孩linux教程 http://edu.51cto.com/course/course_id-1035-page-1.html 2) 跟着老男孩从0开始一步步实战深入学习linux运维(三) http://edu.51cto.com/lesson/id-11909.html linux学习资料持续更新中,布布扣,bubuko.com

Arduino语言学习记录(持续更新)

几天前某宝买了一套,这几天没工夫.今天开始学学这个“玩具”. 1.Arduino的变量数据类型: 数据类型  数据类型 RAM 范围 void keyword N/A N/A boolean 1 byte 0 到 1(True 或 False) byte 1 byte 0 到 255 char 1 byte -128 到 127 unsigned char 1 byte 0 到 255 int 2 byte -32768 到 32767 unsigned int 2 byte 0 到 65535

nodejs学习(持续更新中)

nodejs和express的安装什么的,网上基本都有现成的了,这里有点说下, 在较早点的版本(如3.5.0) npm install -g [email protected] 后,可以直接使用 express helloWorld创建工程, 但最新express4.0版本中将命令工具分家出来了(项目地址:https://github.com/expressjs/generator),所以我们还需要安装一个命令工具,命令如下:npm install -g express-generator ##

设计模式学习心得----开篇

做了几年的开发工作,还停留在开发工程师的阶段,想着不能一直这样下去,觉得要为自己以后做打算了,开发常规两条路:项目管理,架构师,我选择架构师.之 所以这样选,这是保守的一个选择,用格力的广告“掌握核心科技”,只有掌握了核心技术,核心业务,才能占据主导角色.当然要成为一个合格的架构师,需要学 习的,掌握的东西要非常多,非常全面,也有很多条件,但这是我选架构师的一个最重要条件.既然已经决定了,就要学习自己欠缺的.设计模式就是之一,于是有 了这系列文章,记录学习过程中一些心得和总结. 一:为什么要用设

大话设计模式学习心得

我的理解是建立在C++上的,而书中所用的例子是java的,每一种模式我都会转化为C++中的应用来理解. 1.简单工厂模式: 我的理解是父类定义接口,子类实现接口,外加一个根据输入产生不同子类的函数.如果需要添加新实现时,需要添加子类,和修改工厂函数. 2.策略模式: 简单一点的理解是将工厂函数和父类定义在一个新的类中,那么客户端的代码就会显得简洁一些.比较重要的一点是接口和客户端的耦合度降低了.两个类改为一个类. 3.单一职责原则: 还是耦合度的问题,如果太多的功能集中在一个类中,成员变量数量的

java常用设计模式学习心得

学习自:http://shenzhenchufa.blog.51cto.com/730213/161581 代码来自:http://shenzhenchufa.blog.51cto.com/730213/161581 感谢博主:shenzhenchufa. 学习之余我写一些自己的心得.无心侵犯版权,用于自己学习. ------------------------- strategy(策略模式) -------------------------我们有一个设计原则:找出应用中相同之处,且不容易发生

Flask,web框架学习_持续更新

<Flask web 开发:基于python> Always believe that something wonderful is about to happen 第1章 安装 1.1virtualenv模块安装 #在shell窗口 easy_install virtualenv #即可 或者 pip isntall virtualenv #查看版本 virtualenv --version 1.2创建虚拟环境venv 及激活 virtualenv venv#venv为名字,可随意改,但常用

大话设计模式学习心得2

1.迪米特法则 类之间的联系越少越好, 2.外观模式 添加一个新的类,包含子类,实现不同的组合,降低与外界的耦合,对旧代码的更新可以适用. 3.建造者模式 和外观模式有些类似吧,实现子类的各种不同的组合,也就是在内部实现接口调用顺序,而在外界只需调用具体的接口. 4.观察者模式 一个类A是观察者类,另一个类B是通知者类,B中调用A的接口,A中有B的通知号,其实耦合度还是很高的,只是有一个事件来到时,B主动调用注册在A中的方法.相当于实现了通知

Git学习笔记(持续更新)

强制同步为远程的代码 远程仓库回退了commit的情况下(第2条描述之情况),强制同步远程的代码到本地 #更新远程最新的所有代码,但是不merge或者rebase git fetch --all #直接reset到master,也就把刚才fetch的更新了 git reset --hard origin/master 回退版本 #回退本地版本git reset --hard <commit_id>#强制提交到服务器 git push origin HEAD --force 新建分支和远程分支