摘要: GOF中最简单的一个模式,只涉及到一个类。比如线程池、缓存等这些对象在应用只能被实例化一次,如果实例化多次,有可能会造成不可预测的后果。何谓单例?答曰:该类的对象只能被实例化一次。程序猿:如果只是为了让对象被创建一次,那我们直接把对象放在全局变量在不就可以解决这类问题了? 大师:放在全局中的确可以解决该类问题,但还是存在一些缺陷。 程序猿:什么缺陷? 大师:你把对象放在全局变量中,意味着在程序启动的时候就必须要实例化,如果该对象创建的时间比较长而且 在创建出来的时候不一定就用得上,那就会消耗资源,全局静态变量的确是能解决问题,但单例模式也一个不错 的选择,你可以在需要的时候再创建它。 单例模式 阅读全文
posted @ 2014-03-31 10:42 sunrfun 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 场景描述 QQ奶茶,是大家很熟悉的一个饮料,他们经营的方式是客户在奶茶中任意搭配自己喜欢的东西,商家最终根据你奶茶中搭配的东西算出价格。奶茶价格是5元,当你往奶茶中添加红豆,则价格为6元,加鲜草蜜价格则为8元。商家嫌每次都要计算价格,要开发一个应用,能够自动算出总的价格。 初步设计 阅读全文
posted @ 2014-03-28 09:58 sunrfun 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 在prism中要实现页面导入时传入参数中比如MyView?param1=abc&param2=123,如何获得这些参数呢?这就要实现INavigationAware接口。上面那个视图View叫MyView,假设它的ViewModel叫MyViewModel,那个这个ViewModel必须实现INavigationAware接口。INavigationAware接口源码View Code public interface INavigationAware{bool IsNavigationTarget(NavigationContext navigationContext);void O 阅读全文
posted @ 2013-03-24 21:29 sunrfun 阅读(1423) 评论(0) 推荐(0) 编辑
摘要: public interface INavigationAware{bool IsNavigationTarget(NavigationContext navigationContext);void OnNavigatedTo(NavigationContext navigationContext);void OnNavigatedFrom(NavigationContext navigationContext);}当从本页面转到其它页面的时候,会调用OnNavigatedFrom方法,navigationContext会包含目标页面的URI。当从其它页面导航至本页面的时候,首先会调用IsNa 阅读全文
posted @ 2013-03-24 14:09 sunrfun 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 出现这个错误的原因是模块初始化的视图没有在EF容器中注册,在VIEW类上标志[EXPORT] 阅读全文
posted @ 2013-03-23 19:53 sunrfun 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 第一章“电话会议系统”,介绍应用示例以及团队专家第二章“分解领域”,提供了一个高级应用程序示例,并通过应用程序介绍了边界上下文。第三章“定单与注册边界上下文”,介绍第一个边界上下文,解释了一些CQRS的概念,描述了一些基础架构层的元素。(到26页)第四章“扩展、延伸订单与注册上下文边界”,添加一些新的特性到上下文边界,讨论测试方法。第五章“为发布第一个版本做准备”,添加了两个新的上下文边界和处理它们之间的集成问题。指导event sourcing的实现,这是我们发布的第一个虚拟产品版本。第六章“系统版本控制”,讨论如何对系统进行版本控制以及用最小的间断时间升级系统。第七章“增加系统的弹性与性能 阅读全文
posted @ 2013-01-13 23:24 sunrfun 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 札记一不想谈四色原型建模的一些知识,只是想谈谈对《彩色UML建模》这本书的一些看法。 《彩色UML建模》这本书在程序界的呼声一直都是很高,我也买了一本中文版的,花了几天时间去阅读了这本书,发现这并没有我想象中的那么好,特别是中文版的,一些术语读起来前后不通,比如Archetypes书中全部翻译成架构型,本人觉得用原型可能更为贴切。而且书中对一些概念的描述如果对四色原型不了解你把书翻烂了也不会有任何作用。而且书中只是画了大量的UML图,而没有作任何解释,看得一头雾水,不知是本人水平低还是别的原故。所以想买这本书的一些读者一些见意,先找电子档的看看,如果能接受再去购买。 阅读全文
posted @ 2012-10-30 17:31 sunrfun 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 写了N久,没保存,郁闷,暂时不写了,就写个 ICallHander接口说明ICallHander说明Input,这个参数中封装了已拦截的方法、方法的参数等有用的信息getNext,一个委托,用于调用拦截的方法,通过这个委托我们可以很好的控制我们需要在拦截了具体方法后如何进行具体的业务逻辑操作。通过getNext()(input, getNext); 这段代码即可完成对方法的调用,这样可以根据具体需求决定在调用方法前还是方法后进行具体操作。 阅读全文
posted @ 2012-03-22 20:41 sunrfun 阅读(637) 评论(0) 推荐(0) 编辑
摘要: 当我们进行查询的时候,哪些关系的数据将会被加载到内存呢?所有相关的对象都需要吗?在一些场合可能有意义,例如,当查询的实体仅仅拥有一个相关的子实体,但是,多数情况下,你可能只需要加载部分数据,或者你喜欢的话,加载更多的数据。 在EF4中支持延迟加载功能,那POCO是否也支持延迟加载呢。这个答案是肯定的。在POCO中支持延迟加载必需完成以下两个步骤:1、在需要延迟加载的属性前加上virtual ,该属性的类型可以是任务的集合类型ICOLLOCT<T>或者是0/1..1关联属性。例如,更新Category实体类,使之支持延迟加载public class Category{ public 阅读全文
posted @ 2011-05-11 11:46 sunrfun 阅读(4142) 评论(1) 推荐(1) 编辑
摘要: 在.NET开发中,EF4以前的版本以及LINQ TO SQL都不支持complex数据类型,EF4终于支持complex类型的数据了,这意味着微软的EF框架朝领域驱动方面又迈了一大步。 复杂的数据类型其实就是一个POCO类,想想曾几何时,我们想在开发时想设计一个用户信息类,我们写的类不得不包括以下信息:public class UserInfo{ public int UID{GET;SET}; public string Identity{get;set}; public string FirstName{get;set}; public string LastName{get;set};. 阅读全文
posted @ 2011-05-11 09:46 sunrfun 阅读(3779) 评论(0) 推荐(0) 编辑