02 2022 档案

摘要:当我们的ActionFilter需要使用某个Service的时候,我们一般会通过构造函数注入。演示一下,首先自定义一个ActionFilter,通过构造函数注入IMyService: public interface IMyService { string GetServiceName(); } p 阅读全文

posted @ 2022-02-27 13:14 樱木007 阅读(213) 评论(0) 推荐(0) 编辑 |

摘要:3.6.1 定义 运用共享技术有效地支持大量细粒度的对象。 享元模式——运用共享技术有效地支持大量细粒度的对象。享元模式可以避免大量相似类的开销,在软件开发中如果需要生成大量细粒度的类实例来表示数据,如果这些实例除了几个参数外基本上都是相同的,这时候就可以使用享元模式来大幅度减少需要实例化类的数量。 阅读全文

posted @ 2022-02-27 12:00 樱木007 阅读(59) 评论(0) 推荐(0) 编辑 |

摘要:3.5.1 定义 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 3.5.2 场景模拟 在家庭影院中,有灯光,屏幕,投影机,功放机,DVD 播放器这几个基本的工具: 1灯光,可以关闭灯光和打开灯光。 2投影机,可以打开 阅读全文

posted @ 2022-02-27 10:49 樱木007 阅读(51) 评论(0) 推荐(0) 编辑 |

摘要:3.4.1 定义 将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性 3.4.2 场景模拟 为一家在全国许多城市都有分销机构的大公司做办公管理系统(OA),总部有人力资源、财务、运营等部门,在北京有总部,在全国几大城市设有分公司,比如上海设有华东 阅读全文

posted @ 2022-02-26 12:48 樱木007 阅读(46) 评论(0) 推荐(0) 编辑 |

摘要:3.3.1 定义 动态地给一些对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。 3.3.2 场景模拟 在软件开发中,我们经常想要对一类对象添加不同的功能,例如要给手机添加贴膜,手机挂件,手机外壳等,如果此时利用继承来实现的话,就需要定义无数的类,如StickerPhone(贴膜是 阅读全文

posted @ 2022-02-20 11:42 樱木007 阅读(35) 评论(0) 推荐(0) 编辑 |

摘要:3.2.1 定义 将抽象部分与它的实现部分分离,使它们都可以独立地变化 3.2.2 场景模拟 以电视遥控器的一个例子来引出桥接模式解决的问题,遥控器有开电视,关电视,以及更换节目的功能,电视机有多个品牌 3.2.3 场景代码实现 抽象类TV封装了遥控器功能的变化,具体实现交给具体型号电视机去完成: 阅读全文

posted @ 2022-02-19 11:52 樱木007 阅读(55) 评论(0) 推荐(0) 编辑 |

摘要:3.1适配器模式(Adapter Pattern) 3.1.1 定义 适配器模式——把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。适配器模式有类的适配器模式和对象的适配器模式两种形式. 3.1.2 场景模拟 在生活中,我们买的电器插头是2个孔 阅读全文

posted @ 2022-02-13 16:18 樱木007 阅读(34) 评论(0) 推荐(0) 编辑 |

摘要:2.6.1 定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 2.6.2 场景模拟 写一个简历类,必须要有姓名,可以设置性别和年龄,可以设置工作经历,最终需要三份简历。 2.6.3 代码演示 class Program { static void Main(string[] a 阅读全文

posted @ 2022-02-13 15:35 樱木007 阅读(42) 评论(0) 推荐(0) 编辑 |

摘要:2.5.1 定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 2.5.2 结构图 Builder是为创建一个Product对象的各个部件指定的抽象接口。ConcreteBuilder是具体建造者,实现Builder接口,构造和装配各个部件。Product是产品,Dire 阅读全文

posted @ 2022-02-13 12:44 樱木007 阅读(53) 评论(0) 推荐(0) 编辑 |

摘要:2.4.1 定义 提供一个创建一系列相关或相互依赖对象的接口,而且无需指定他们具体的类。 2.4.2 抽象工厂模式的结构图 AbstractProductA和AbstractProductB是两个抽象产品。之所以抽象,是因为它们都有可能有两种实现,而ProductA1、ProductA2和Produ 阅读全文

posted @ 2022-02-13 12:42 樱木007 阅读(50) 评论(0) 推荐(0) 编辑 |

摘要:2.3.1 定义 工厂方法模式Factory Method,又称多态性工厂模式。在工厂方法模式中,核心的工厂类不再负责所有的产品的创建,而是将具体创建的工作交给工厂子类去做。该核心类成为一个抽象工厂角色,仅负责给出具体工厂子类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。 工厂方法模式是 阅读全文

posted @ 2022-02-13 12:38 樱木007 阅读(51) 评论(0) 推荐(0) 编辑 |

摘要:2.2 简单工厂模式(Factory Method Pattern) 2.2.1 定义 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模 阅读全文

posted @ 2022-02-13 12:31 樱木007 阅读(67) 评论(0) 推荐(0) 编辑 |

摘要:2.1 单例模式(Singleton Pattern) 2.1.1 定义 确保一个类只有一个实例,并提供一个全局访问点。 2.1.2 单例模式的UML类图 2.1.3 单线程单例模式代码实现 public class Singleton { private static Singleton inst 阅读全文

posted @ 2022-02-13 12:26 樱木007 阅读(51) 评论(0) 推荐(0) 编辑 |

摘要:1.1 单一职责原则(SRP) (1)SRP(Single Responsibilities Principle)的定义:就一个类而言,应该仅有一个引起它变化的原因。简而言之,就是功能要单一。 (2)如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它 阅读全文

posted @ 2022-02-13 11:12 樱木007 阅读(30) 评论(0) 推荐(0) 编辑 |

摘要:1.Redis是什么? Redis是一种运行速度很快,并发很强的跑在内存上的NoSql数据库,支持键到五种数据类型的映射。 2.讲一讲为什么Redis这么快? 首先,采用了多路复用io阻塞机制 然后,数据结构简单,操作节省时间 最后,运行在内存中,自然速度快 3.Redis为什么是单线程的? 因为R 阅读全文

posted @ 2022-02-13 11:08 樱木007 阅读(73) 评论(0) 推荐(0) 编辑 |

随笔 - 88, 文章 - 0, 评论 - 18, 阅读 - 46837

Copyright © 2025 樱木007
Powered by .NET 9.0 on Kubernetes

点击右上角即可分享
微信分享提示