摘要:
近期遇到了DateTime到底是值类型还是引用类型的疑惑,顺势较深入地了解一下DateTime相关的内容 结论:DateTime是值类型,因为DateTime是结构体,而结构体继承自System.ValueType,属于值类型 一、DateTime是值类型还是引用类型的探索 二、了解DateTime 阅读全文
摘要:
在上一篇<学习MVC之租房网站(一)-项目概况>中,确定了UI+Service的“双层”架构,并据此建立了项目 接下来要编写Common类库、配置AdminWeb和FrontWeb 一、编写Common类库 验证码和计算MD5没什么好说,直接从网上复制来的~.~ 以后会逐步扩充,把公用的方法都放到这 阅读全文
摘要:
介绍正在学习的租房网站的概况 阅读全文
摘要:
代理模式(Proxy):为另一个对象提供一个替身或占位符以控制对这个对象的访问。 UML类图: Subject为RealSubject和Proxy提供了统一的接口,Proxy就是RealSubject的代理。RealSubject是真正做事的对象,是被Proxy代理和控制访问的对象。Proxy持有R 阅读全文
摘要:
状态模式(State)定义:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。 UML类图: 状态模式适用于要转换很多业务状态的场景。比如,Head First举的糖果机例子, 糖果机有“没有投币”、“有投币”、“售出糖果”、“糖果售罄”四种状态,并且有四种动作:“投入硬币”、“返回 阅读全文
摘要:
组合模式(Composite)定义:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 UML类图如下: 比如《大话》中举的例子,公司总部在北京,然后在南京、杭州设有办事处,总公司和分支办事处都有相似的组织结构,比如都有人力资源部、财务部等。如 阅读全文
摘要:
迭代器模式(Iterator)定义:提供一种顺序访问聚合对象中各个元素的方法,而又不暴露其内部的表示。 实际上现在很多语言都自带迭代器,无需我们单独实现,比如c#中的foreach-in,但通过学习迭代器模式,我们可以看到类似foreach-in这种语法背后的逻辑,同时感受一下GOF所在的那个时代大 阅读全文
摘要:
模板方法模式(Template Mothod):在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 UML类图如下: 要点有两个:原语操作PrimitiveOperation以及钩子Hook()方法。 代码举例 1 pu 阅读全文
摘要:
外观模式(Facade)定义:提供了一个统一的接口,用来访问子系统中的一组接口。此模式定义了一个高层接口,让子系统更易于使用。 类图如下: Facade类封装了SubSystem的方法或接口,Client只需与Facade交互。比如,如果SybSystem是单支股票,那么基金就可以认为是他们的Fac 阅读全文
摘要:
适配器模式(Adaptor):将一个类的接口转换成客户希望的另一个接口。适配器让原本接口不兼容的类可以一起工作。 类似于我们日常生活中的电源适配器,提供了低压直流电和220V交流电之间的适配。 适配器有两种形式:对象适配器和类适配器。两者的类图分别如下: 对象适配器: Adapter完成Target 阅读全文