设计模式
fan_rockrock
程序人生
展开
-
三层架构入门
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层、表示层。 1、表示层(WEB):位于系统的最外层,离用户最近。用于显示数据和接受用户输入的数据,只提供软件系统与用户交互的接口界面。 注意:不要在表示层写与业务逻辑和数据访问相关的代码甚至SQL语句。转载 2014-01-20 11:32:46 · 1369 阅读 · 0 评论 -
观察者模式(又叫发布-订阅模式)
原理: 定义对象间的一种一对多依赖关系,使得每当一个对象(通知者)状态发生改变时,其相关依赖对象(观察者)皆得到通知并被自动更新 //通知者接口 interface Subject { void Attach(Observer observer); void Detach(Observer observer);原创 2016-04-08 10:30:49 · 455 阅读 · 0 评论 -
适配器模式
原理:把一个类的接口转换成客户端期望的另一种接口,从而使原本因接口不匹配而无法一起工作类能一起工作。适配器类可以根据所传递的参数返回给一个合适的实例给客户端。 abstract class Player //篮球运动员 { protected string name; public Player(string nam原创 2016-04-08 09:54:31 · 338 阅读 · 0 评论 -
面向对象五大基本原则
一、单一职责原则一个类应该仅有一个引起它变化的原因(最简单,最容易理解却最不容易做到的一个设计原则)职员类例子:比如在职员类里,将工程师、销售人员、销售经理这些情况都放在职员类里考虑,其结果将会非常混乱,在这个假设下,职员类里的每个方法都要if else判断是哪种情况,从类结构上来说将会十分臃肿,并且上述三种的职员类型,不论哪一种发生需求变化,都会改变职员类!这个是大家所不愿意看到的!原创 2016-04-08 09:23:50 · 488 阅读 · 0 评论 -
一个例子穿插三种不同的工厂模式形态
1、简单工厂模式工厂类根据提供给它的参数,返回的是几个产品中的一个类的实例。通常情况下,它返回的是一个公共的父类,在这个工厂类里面,父类的引用指向子类的对象厂长生产杯子时先不让生产线知道我要产的是玻璃的还是瓷的,而是让它在不知道具体材料的情况下先做它能做的,等到它把模具做好,只需要向其中填充玻璃原料或者瓷原料就可以造出同一形状的具体杯子了。所以就有了简单工厂模式。 class原创 2016-04-07 21:59:05 · 1642 阅读 · 0 评论 -
单例模式
public class Singleton //三步走 { private static Singleton instance = null;//第一步:定义私有静态属性 private Singleton() { //第二步:构造函数私有化 } public static Singleton GetInstan原创 2016-04-07 20:09:47 · 350 阅读 · 0 评论 -
建造者模式
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。类型:创建类模式类图:四个要素产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。抽象建造者:引入抽象建造者的目的,是转载 2014-04-12 23:46:19 · 827 阅读 · 0 评论 -
在继承和多态中的内存分配机制
在继承和多态中的内存分配机制: 继承、封装和多态是面向对象的三大支柱要素,也是C#语言中最为重要的概念。在这里无意具体讲解他们的意义、使用方法等,只是想通过具体实例,从它们的内存分配,以期理解其运行机制,从而对继承和多态概念有深层次的理解。 这里节选Anytao的《你必须知道的.NET》之继承本质论中示例代码和演示图片,加以说明:转载 2014-04-12 22:41:24 · 1057 阅读 · 0 评论 -
面向对象基础(2)--抽象类 接口 集合 泛型
接上一篇讲:一.抽象类和接口: 1.抽象类: 我们观察发现,Animal类其实根本就不可能实例化,动物是一个抽象名词,没有具体对象与之对应,可以把实例化没有意义的类改成抽象类,同样getShoutSound函数也没有 任 何意义,可以将virtual修饰符修改为abstract,使之成为抽象方法原创 2014-03-14 22:34:28 · 1519 阅读 · 0 评论 -
面向对象基础(1)--继承 多态 重构
好久没有写博客了,最近一直忙着复习考研,前几天听了张老师讲的设计模式的这门课,很有感触,就简单地整理一下学的东西。。。这节课讲的是面向对象的几个基本概念,老师举了个例子把面向对象的很多东西都连接起来了:动物比赛,每个不同动物都有名字,能发出叫声等。。。一.继承. 第一、子类拥有父类非private的属性和功能; 第二、子类具有原创 2014-03-14 21:16:14 · 1459 阅读 · 0 评论 -
享元模式
原理: 运用共享技术有效地支持大量细粒度的对象。不使用享元模式: class Game //游戏 { private string name = ""; public Game(string name) { this.name = name; } publi原创 2016-04-08 16:13:08 · 600 阅读 · 0 评论