Dict.CN 在线词典, 英语学习, 在线翻译 ------------- MyGitee 朱秋贵内科诊所 My腾云code

随笔分类 -  [Net]:重构

摘要:1、原则 1)、单一职责 只一个引起变化 2)、开闭 修改关闭、扩展开放=>接口、抽象类 3)、里氏代换 子类对象替父类对象 开闭补充,抽象化实现 4)、依赖倒置=>依赖抽象接口 5)、接口隔离=>依赖Min接口 6)、合成/聚合复用=>已有对象成为新对象一部分 聚合:整体<=部分 iphone<= 阅读全文
posted @ 2019-11-26 10:56 cn2025 阅读(173) 评论(0) 推荐(0) 编辑
摘要:面向对象五大原则 单一职责 开闭原则=>接口、抽象、多态 替换原则=>子类替换父类 依赖原则=>依赖接口和抽象类 分离接口1、单一职责2、所有子类常用 提到基类 不是每个子类 考验用接口或其它方式3、组合、聚合、接口、继承4、委派代替继承 桥接模式、适配器模式、策略模式 根本就不存在inherit关系5、提取接口 如简单工程、抽象工厂等都会通过接口来解开依赖6、策略模式来替换原来的switch case和if else语句,这样可以解开耦合 以注入IOC的形式实现功能7、分解依赖” 是指对部分不满足我们要求的类和方法进行依赖分解,通过装饰器来达到我们需要的功能 比如接口8、设 阅读全文
posted @ 2011-04-14 18:25 cn2025 阅读(162) 评论(0) 推荐(0) 编辑
摘要:浅拷贝只复制顶级(Top-Level)对象深拷贝则复制对象及其子对象。小议.NET中的对象拷贝 阅读全文
posted @ 2010-01-19 17:22 cn2025 阅读(127) 评论(0) 推荐(0) 编辑
摘要:简单的工厂类的一个使用场景是, 假设有一个基类 BaseClass, 和一系列的子类 A, B, C, 工厂类根据某个参数,例如字符串 “A”, “B”, “C” 创建出相应的子类。 举例如下:public class Factory{ public static BaseClass Create(string name) {... 阅读全文
posted @ 2010-01-07 14:03 cn2025 阅读(167) 评论(0) 推荐(0) 编辑
摘要:.NET 框架的编译与运行,以及采用的架构模式与设计模式的图文解释 图解.Net框架系列(索引贴) 摘要: 众所周知,DotNet框架是非常庞大的,光项目创建时的种类就有WPF,WCF,WF这三种最新的技术,还有以前的 Web,WinForm,Service,Mobile等等. 这么复杂和庞大的框架,用文字来描述是远远不够的,所以我准备写一系列图文并茂的文章,把我所知道的所有... 阅读全文
posted @ 2009-11-26 21:19 cn2025 阅读(254) 评论(0) 推荐(0) 编辑
摘要:如何使用设计模式系列 设计模式,需求分析 如何使用设计模式来构造系统(索引贴) 摘要: 一直很想写关于设计模式的具体使用的文章,可是一直没想好怎么去写,才可以通俗易懂,真正的让设计模式,应用到系统设计中.今天终于想到了,这个系列准备用实例去讲解如何使用(GOF)设计模式.阅读全文 posted @ 2008-08-25 11:13 涵舍愚人 阅读... 阅读全文
posted @ 2009-11-26 21:14 cn2025 阅读(181) 评论(0) 推荐(0) 编辑
摘要:所谓状态模式是指:当一个对象的内部状态改变时,它的行为也随之改变,如何解藕状态与行为之间的藕合关系,且避免大量的if….else…语句的出现,从而使得“对象看起来似乎修改了它的类”。 状态模式的实现非常的简单,就是将状态抽象出来,然后在状态中处理这些请求,这也是面向对象抽象特征的基本应用。 状态模式的UML图如下: 相关角色: 1、状态属主角色... 阅读全文
posted @ 2009-11-23 14:28 cn2025 阅读(250) 评论(0) 推荐(0) 编辑
摘要:在软件的构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯到对象之前某个点时的状态,如果使用一些公有接口来让其他对象得到对象的状态,便会暴露对象的细节实现。 如何实现对象状态的良好保存与恢复?但同时又不会因此而破坏对象本身的封装性。 Memento 备忘录模式提供解决途径,它在不破坏封装性的前提下,捕获一个对象的内部状态,并在这个对象之外保存这个状态。这样就可以将对象恢... 阅读全文
posted @ 2009-11-22 01:12 cn2025 阅读(192) 评论(0) 推荐(0) 编辑
摘要:所谓迭代者模式就是:提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。[GOF 《设计模式》] 在软件的构建过程中,集合对象(也就是聚集:是一组数据集或者对象集,它可以通过循环来访问 )内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也 为“同一... 阅读全文
posted @ 2009-11-14 10:08 cn2025 阅读(344) 评论(0) 推荐(0) 编辑
摘要:Interpeter解释模式:给定一个语言,定义它的文法的一种表示,并定义一种解释器,这个解释器使用该表示来解释语言中的句子。 ——《设计模式》 在软件构建过程中,如果某一特定领域的问题比较复杂,类似的模式不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化。在这种情况下,将特定 领域的问题表达为某种语法规则下的句子,然后构建一个解释器来解释这样的句子,从而达到解... 阅读全文
posted @ 2009-11-10 01:07 cn2025 阅读(286) 评论(0) 推荐(0) 编辑
摘要:命令模式是对命令的封装。通过封装把发出命令的责任和执行命令的责任分割开,委派给不同的对象。 命令(Command)模式属于对象的行为模式【GOF95】,它又称为行动(Action)模式或交易(Transaction)模式。 每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一方和接收的一方独立开来,使得请求 的一方不必知道接收请求的一方... 阅读全文
posted @ 2009-11-08 13:18 cn2025 阅读(256) 评论(0) 推荐(0) 编辑
摘要:客户端应用 #region办公室报销责任链 Console.WriteLine("-------办公室报销责任链----------"); KeZhangke=newKeZhang("科长"); ChuZhangchu=newChuZhang("处长"); JuZhangju=newJuZhang("局长"); Receiptr1=newReceipt(360,"请客吃饭."); Receipt... 阅读全文
posted @ 2009-11-05 00:05 cn2025 阅读(145) 评论(0) 推荐(0) 编辑
摘要:注:本文来源于我给公司内部发的邮件中,所以背景都是基于我们现在的应用,而且思路也很混乱,请大家见谅。 自05年开始接触到分布式架构,06年在原先的基础上从头开始设计了一套分布式架构,当时SOA这个概念也没这么火。整个大平台的开发、性能和可扩展性都得到了考验,觉得有一些东西想和大家一起分享。 我不知道我所说的这些算不算真正的SOA,我也没读过什么SOA的书籍,我觉得SOA这个概念非常抽象,任何概念... 阅读全文
posted @ 2009-11-03 14:30 cn2025 阅读(461) 评论(0) 推荐(0) 编辑
摘要:一、何为代理 顾名思意,所谓代理模式就是通过增加一个中间层(代理类)来操控我们实际要操控的另一个对象,就像一个歌星或专业运动员的经纪人一样,被操控的对象或者是 因为很复杂,或者是因为需要较长的时间才能进行构造,也或者是因为分布在网络的其它位置,这些都需要我们通过代理来解决如何使用这些对象的问题。 二、 我们的例子 比如在网络异地,有一个专门的服务器用于提供专业的天气预报的相关信息,我们在网络... 阅读全文
posted @ 2009-11-03 11:36 cn2025 阅读(183) 评论(0) 推荐(0) 编辑
摘要:Flyweight模式也叫享元模式,是由GoF提出的23种设计模式中的一种。Flyweight模式是构造型模式之一,它通过与其他类似对象共享数据来减小内存占用,所以叫享元。 此模式解决的是由于大量的细粒度对象所造成的内存开销的问题,它在实际的开发中并不常用,但是作为底层的提升性能的一种手段却很有效。 享元模式涉及的主要角色: 1、Flyweight目标类:需要与其他类似对象共享数据来减小内存占... 阅读全文
posted @ 2009-11-03 09:42 cn2025 阅读(187) 评论(0) 推荐(0) 编辑
摘要:Decorator装饰模式:主要用于动态地给一个对象添加一些额外的职责。就扩展功能而言,它比生成子类方式更为灵活。 先进入我们的例子: 程序如下图 定义抽象基类AbsCar,此处它代表一个抽象的“车”,它既是装饰类的基类,也是被装饰类的基类,其代码如下 usingSystem; usingSystem.Collections.Generic; usingSystem.Li... 阅读全文
posted @ 2009-11-02 15:36 cn2025 阅读(161) 评论(0) 推荐(0) 编辑
摘要:组合模式(Composite)是一种“结构型”模式(Structural)。结构型模式涉及的对象为两个或两个以上,表示对象之间的活动,与对象的结构有关。 组合模式适用于两个或者多个类有相似的形式,或者共同代表某个完整的概念,外界的用户也希望他们合而为一,就可以把这几个类“组合”起来,成为一个新的类,用户只需要调用这个新的类就可以了。 因此,组合模式... 阅读全文
posted @ 2009-10-25 10:09 cn2025 阅读(202) 评论(0) 推荐(0) 编辑
摘要:原型模式(Prototype Pattern)也是一种创建型模式,它关注的是“大量相似对象”的创建问题。我们经常会遇到这样的情况:在系统中要创建大量的对象,这些对象之间具有几乎完全相同的功能,只是在细节上有一点儿差别。 网上有一些针对Prototype 模式的比较好的比方: 1、假如您在图书馆看到几本自己喜欢的书籍,当看到某些知识点时,想在上面作相关记号,但由于其是图书... 阅读全文
posted @ 2009-10-22 16:54 cn2025 阅读(215) 评论(0) 推荐(0) 编辑
摘要:有这样一种场景:世界杯外围赛,有资格参加比赛的国家都会派出自己的球队。我们可以将每个国家的球队看成是一组系列化的对象,因为在这一支球队中,有领 队,教练,球员等角色,每一种角色都是一类对象。而每个国家派出的球队都有这些固定的角色。但不同的球队这些角色的具体对象又不一样。 这就是抽象工厂适用的情景:提供一个创建一系列(上面的一个球队就是一个系列)相关或相互依赖对象(球队中的领队,教练,球员之间就是相... 阅读全文
posted @ 2009-10-21 15:34 cn2025 阅读(253) 评论(0) 推荐(0) 编辑
摘要:在软件系统中,经常面临着“某个对象”的创建工作,由于需要的变化,这个对象经常面临着剧烈的变化,但是它却拥有比较稳定的接口。例如本例:我们要进行汽 车性能测试(汽车的起动,行驶以及停止功能测试),测试内容是固定的,但参与测试的对象却是随时变化的(丰田车系列,宝马车系列或者其它任何相应的车款) 如何应对这种变化?如何提供一种“封装机制”来隔离出R... 阅读全文
posted @ 2009-10-21 00:15 cn2025 阅读(207) 评论(0) 推荐(0) 编辑

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