08 2020 档案
【设计模式】20.访问者模式
摘要:说明:比如一开始有3个是执行Print方法,后来改需求了,要加多个时间显示,就需要3个都修改,加上访问者,客户端是由访问者去执行这3个类的方法。客户端无需改变代码。 实现: public abstract class ABS_Element { public abstract void Accept 阅读全文
posted @ 2020-08-22 14:51 一个小目标一次坑记录 阅读(133) 评论(0) 推荐(0) 编辑
【设计模式】19.责任链模式
摘要:说明:挺直白,就是某个人是有哪些责任,哪些不是他的。比如请假,1天可以主管批准,1天以上需要部门经理批准,3天以上需要总监批准。就在类里设定好下一个责任人是哪个就可以了。 实现: public class Employee { public int day { get; set; } public 阅读全文
posted @ 2020-08-22 12:51 一个小目标一次坑记录 阅读(126) 评论(0) 推荐(0) 编辑
【设计模式】18.策划者模式
摘要:说明:在有多个情况或模式情况,代替掉if-else的写法。需要一个配置,抽象角色和很多具体角色,个人感觉写起来还挺舒服的。 实现: public abstract class ABS_shuishou { public abstract void jiaoshui(); } public class 阅读全文
posted @ 2020-08-22 12:24 一个小目标一次坑记录 阅读(111) 评论(0) 推荐(0) 编辑
【设计模式】17.状态者模式
摘要:说明:这个比较简单,使用状态来改变行为,比如有3个行为类,根据条件判断后状态改为某个状态,从而执行这个行为类; 实现: public class Account { public ABS_Status status1; public double Balance { get { return sta 阅读全文
posted @ 2020-08-22 01:58 一个小目标一次坑记录 阅读(124) 评论(0) 推荐(0) 编辑
【设计模式】16.中介者模式
摘要:说明:一个很好的模式,解决类互相引用继承的重耦合问题,避免了类无法独立出来,不用继承,不过中介者就要写他们的关系方法。 实现: public abstract class ABS_paiyou { //牌友抽象类 public int MoneyCount { get; set; } public 阅读全文
posted @ 2020-08-22 01:36 一个小目标一次坑记录 阅读(116) 评论(0) 推荐(0) 编辑
【设计模式】16.观察者模式
摘要:说明:观察者有订阅和订阅者的关系,现实中的微信关注订阅,就是观察者模式。而且加上委托更方便使用。 场景:一个类发生改变,需要通知其他类,但没有固定数目时。 实现: public delegate void weituo(object sender); public class TenXun { pu 阅读全文
posted @ 2020-08-22 01:08 一个小目标一次坑记录 阅读(142) 评论(0) 推荐(0) 编辑
【设计模式】15.迭代器模式
摘要:说明:迭代器模式可以看成是一个对象的集合,比如List<class>。提供增删,遍历集合里的元素。.NET中的GetEnumerator()就是迭代器模式的。 迭代器要1个类做聚合,1个类做迭代。聚合有Get迭代方法,具体对象集合(看当时需求),迭代器有MoveNext(),Reset(),Curr 阅读全文
posted @ 2020-08-21 23:02 一个小目标一次坑记录 阅读(197) 评论(0) 推荐(0) 编辑
【设计模式】14.命令模式
摘要:说明:感觉比较复杂,需要命令管理,命令,接收者,发送者来完成。而且单看,命令和接收者是绑定的。感觉要整个系统需要命令式管理才能起到很好效果 场景:1.需要可以撤销命令的。 2.需要将命令保存到日志里,以便日后使用的。 实现: //执行命令 public class goOrder { private 阅读全文
posted @ 2020-08-21 18:13 一个小目标一次坑记录 阅读(116) 评论(0) 推荐(0) 编辑
【设计模式】13.模版模式
摘要:说明:感觉在开发过程可以大量使用,把流程打装成一个模版,再不同类时使用。 实现: //比如注册 public abstract class register { /// <summary> /// 模版方法 /// </summary> public void actionModule() { if 阅读全文
posted @ 2020-08-21 17:23 一个小目标一次坑记录 阅读(115) 评论(0) 推荐(0) 编辑
【设计模式】12.代理模式
摘要:说明:像说的那样客户端和程序中间加了一层代理,如果是无功能的代理,加了也是白加,做个占坑作用吧。功能型的有: 单例代理,1.远程代理,2.虚拟代理,3.Copy-on-Write代理,4.保护代理,5.防火墙代理,6.智能引用代理,7.Cache代理 实现: public abstract clas 阅读全文
posted @ 2020-08-21 16:07 一个小目标一次坑记录 阅读(112) 评论(0) 推荐(0) 编辑
【设计模式】11.享元模式
摘要:说明:结构型的,大概就是共享一个对象,重复使用时不用一直创建,达到减少实例化的数量,和内存空间。 要点:用hashtable或者Dictionary来存储对象,有享元工厂管理,抽象类,实现类。 实现: public class carFactory { Hashtable hashtable1 = 阅读全文
posted @ 2020-08-21 15:01 一个小目标一次坑记录 阅读(116) 评论(0) 推荐(0) 编辑
【设计模式】10.外观模式
摘要:说明:提供另一套接口对接客户端,隐藏真实接口和功能,也违背了开闭原则。 实现: public class yuangong { public void add() { //添加员工资料 } } public class yuangong_zhanghao { public void addAccou 阅读全文
posted @ 2020-08-21 14:02 一个小目标一次坑记录 阅读(80) 评论(0) 推荐(0) 编辑
【设计模式】9.装饰者模式
摘要:说明:给一个类增加额外的功能,适合使用,stream就是使用装饰者模式,有了MemoryStream,FileStream,NetworkStream等。 实现: public abstract class car { public abstract void run(); } public cla 阅读全文
posted @ 2020-08-20 15:10 一个小目标一次坑记录 阅读(97) 评论(0) 推荐(0) 编辑
【设计模式】8.组合模式
摘要:说明:树形结构的类对象,适合做文件夹架构 实现: public class Employee { public int id { get; set; } public string name { get; set; } public string job { get; set; } public L 阅读全文
posted @ 2020-08-20 14:11 一个小目标一次坑记录 阅读(88) 评论(0) 推荐(0) 编辑
【设计模式】7.桥接模式
摘要:说明:挺不错的一个模式,将抽象类和实现类解耦,虽然增加了一层,但修改A实现类不会影响到B实现类。其实,三层架构就使用了桥接模式 实现: public class BLL { private IDAL dataobj; public void add() { dataobj.addData();} p 阅读全文
posted @ 2020-08-20 13:14 一个小目标一次坑记录 阅读(118) 评论(0) 推荐(0) 编辑
【设计模式】6.适配器模式
摘要:说明:作为2个不兼容接口的桥梁,比如播放器本来只能播放mp3,加上适配器能播mp4,avi等。 注意:1.系统过多的适配器是个灾难,很难维护,比如明明调用的是A接口,可实现的是B接口,所以慎用! 2.适配器一般不在详细设计使用,在运行的系统中使用,突变的需求,调用适配器方便运行。 实现: //2孔的 阅读全文
posted @ 2020-08-20 12:02 一个小目标一次坑记录 阅读(134) 评论(0) 推荐(0) 编辑
【设计模式】5.原型模式
摘要:说明:经常需要创建重复的对象,可以使用原型克隆出来。 实现: public class test { public void start() { //第一个,怎样也要new car_base carObj = new car(1); //之后都可以用clone car_base carObj2 = 阅读全文
posted @ 2020-08-20 11:35 一个小目标一次坑记录 阅读(112) 评论(0) 推荐(0) 编辑
【设计模式】4.建造者模式
摘要:说明:将很多事情,一件一件的按顺序组装形成,StringBuilding就是建造者模式。 场景:当一个流程由很多功能组成,可以直接使用,然后每个实现就好。 实现: public class Customer { public void buy() { //客户来组装1台电脑 zhihui boss 阅读全文
posted @ 2020-08-20 02:17 一个小目标一次坑记录 阅读(115) 评论(0) 推荐(0) 编辑
【设计模式】3.单例模式
摘要:说明:最简单一种,确保一个类是有一个实例化; 场景:1.多次要使用I/O连接,或者数据库连接; 2.计数器,先用单例缓存; 实现: public class car { private car() { } private car carObj = new car(); public car geto 阅读全文
posted @ 2020-08-20 01:40 一个小目标一次坑记录 阅读(84) 评论(0) 推荐(0) 编辑
【设计模式】2.抽象工厂
摘要:说明:跟工厂一样,就是面向对象式的解耦new这个关键词,感觉像个嵌套工厂,比如一套衣服包括外套,衬衫,裤子,鞋子。然后又分西装套装、运动套装、休闲套装等,为了保证一系列的完整; 注意:套装易扩展,但产品难扩展,比如要加多个眼镜,那所有套装都要加一遍; 场景:QQ皮肤,商品的规格和颜色信息 实现: / 阅读全文
posted @ 2020-08-20 01:29 一个小目标一次坑记录 阅读(157) 评论(0) 推荐(0) 编辑
【设计模式】1.工厂模式
摘要:说明:最常用的一种设计模式,定义一个公共接口,创建时具体使用哪个对象 场景:1.日志记录器,可以切换本地,远程; 2.数据层访问,切换使用哪个数据库; 3.访问连接服务器方式,使用HTTP,IMAP,POP3; 实现: //1.定义公共接口 //2.实现类 //3.工厂 public interfa 阅读全文
posted @ 2020-08-19 23:43 一个小目标一次坑记录 阅读(177) 评论(0) 推荐(0) 编辑
【设计模式】0.简介和说明(重要)
摘要:目前有23种设计模式,目的是重用代码,使用设计模式是真正的软件工程化。它就像一座大厦的砖石,合理的运用能解决很多问题。 使用设计模式可以更好的运用面向对象思想来开发,主要是运用接口,抽象类的特性,让客户端不需要如何实现,只要使用对应接口,每个模块都能独立,不会被继承或引用纠缠,而且也有减少消耗的设计 阅读全文
posted @ 2020-08-19 22:35 一个小目标一次坑记录 阅读(97) 评论(0) 推荐(0) 编辑