CLR via c#读书笔记--垃圾回收

摘要: 访问一个资源的步骤:1.调用IL指令newobj,为资源分配内存2.初始化内存,设置资源的初始化状态。类型的实例构造器负责设置初始化状态。3.摧毁资源的状态进行清理4.释放内存托管堆:进程在初始化时,CLR要保留一块连续的地址空间,这块空间最初并没有对应的物理存储空间。这个地址空间就是托管堆。垃圾回收:第一步:标记阶段标记所有的根沿着线程栈,如果发现一个根引用了一个对象,就在这个对象的同步块索引字段上开启第一位。--对象就这样被标记了第二步:压缩阶段已标记的对象是认为是可以通过应用程序到达的对象,未标记的对象是不可到达的。不可到达的对象被认为是垃圾。垃圾回收只在第0代满的时候发生。非托管资源: 阅读全文
posted @ 2011-06-13 11:28 萧然 阅读(352) 评论(0) 推荐(0)

面向对象的设计原则

摘要: 1.单一职责原则:一个类应该有且仅有一个引起变化的因素2.开放封闭原则:对扩展开发,对修改封闭1)通过扩展已有的软件系统,可以提供新的行为,以满足对软件的新需求,使变化中的软件系统有一定的适应性和灵活性2)已有的软件模块,特别是最重要的抽象模块不能修改,这就使变化中的软件系统有一定的稳定性和延续性3)这样的系统同时满足了可复用性和可维护性3.替换原则:子类可以替换它的基类4.依赖倒置原则高层模块不应该依赖于底层模块,二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖与抽象5.接口隔离原则:一个类对于另一个类的依赖应该建立最小的接口上.不应该强迫客户依赖与它们不用的方法。接口属于客户,不属 阅读全文
posted @ 2011-06-13 11:25 萧然 阅读(328) 评论(0) 推荐(0)

企业架构模式笔记--第九章(领域逻辑模式)

摘要: 一:事务脚本使用过程来组织业务逻辑,每个过程处理来自表现层的单个请求。在客户系统和服务器系统之间的每次交互都包含一定的逻辑。在某些情况下,它可能如显示数据库中的信息一般的简单,也有可能设计计算,验证的步骤。事务脚本将所有的逻辑组成单个过程,在过程中直接调用数据库,或者只通过一个简单的数据库封装器。运行机制:事务脚本组织成类的两种方式:1.将数个事务脚本放在一个类中,每个类围绕一个主题将相关的事务脚本组织在一起。2.每个事务脚本对应一个类。这样就需要用Command模式。这种情况下应该定义一个所有命令的父类,在父类中声明事务脚本逻辑适合的方法。使用时机:适合用于只有少量逻辑的应用程序。(弄了半天 阅读全文
posted @ 2011-06-13 08:42 萧然 阅读(588) 评论(0) 推荐(0)