zoukankan      html  css  js  c++  java
  • 苦逼也聊模式--(0)--开篇

    啥是模式?

    就是前人的抽象总结,反复提炼出来的几个东西。让我们软件可以更好的设计 哈哈。

    工厂模式,有人说工厂就是三层。。。

    那个时候我反不动他,只能说就算是工厂模式也是可以分很多层的。。。。

    以前看过大话设计模式,时间太久,实话说忘光了。再理一次吧,过度设计会把你设计成三层的。

    总体来说设计模式分为三大类:
    创建型模式,共五种:工厂方法模式,抽象工厂模式、单例模式、建造者模式、原型模式。
    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
    行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    先来个特殊的模式吧:

    异常的时候,怎么跳过异常抛出  if(obj!=null){}即可 哈哈

    普通情况下:摘抄 http://www.cnblogs.com/niyw/archive/2010/09/04/1818082.html

    static void TestNormal() {

    Console.WriteLine("测试传统方法.");

    BusinessBase bb = GetBusinessNormal(true);

    if(bb!=null)

    bb.DoSomething();

    else

    Console.WriteLine("出错啦.");

    bb = GetBusinessNormal(false);

    if (bb != null)

    bb.DoSomething();

    else

    Console.WriteLine("出错啦.");    

    }

    static BusinessBase GetBusinessNormal(bool flag) {

    try {

    if (flag)

    return new BusinessA();

    throw new Exception("出错啦.");

    }

    catch {

    return null;

    }

    }

    加个模式的思想吧。

    static void TestEmptyPattern() {

    Console.WriteLine("测试空模式.");

    BusinessBase bb = GetBusinessEmptyPattern(false);

    bb.DoSomething();

    bb = GetBusinessEmptyPattern(true);

    bb.DoSomething();

    }

    static BusinessBase GetBusinessEmptyPattern(bool flag) {

    try {

    if(flag)

    return new BusinessA();

    throw new Exception("出错啦.");

    }

    catch {

    return BusinessA.Empty;

    }

    }

    通过比较上面的两段代码,一般情况下四行的业务代码,为了容错,至少要写6行的容错代码,而使用空模式时不用增加任何一行容错代码。是不是发现用了空模式后代码更加优雅简单,并且安全性提高了很多.

    小结:空模式是一种很简单的模式,甚至不算是模式。然而它代表了一种很好的编码习惯,在具体项目开发过程中,如果用好类似的习惯,相信开发效率会更高,个人技能也会更高。

    我的小结:模式不是万能的,提炼才是精华,像零模式这算半个模式的用法是一个灵活的体现。

    下一步:工厂方法模式

    一个苦逼程序员
  • 相关阅读:
    P1352 没有上司的舞会(树形DP入门,自底向上更新)
    链表和函数指针
    c语言中文件操作
    数据结构中的栈和堆与计算机内存划分的栈区和堆区的区别
    计算机组成原理—cpu
    Linux中一切皆文件
    G 火山哥周游世界(树上走过确切k个点的最短时间,树形dp)
    Paint Box(涂色要求相邻不能同色,求方案数,容斥)
    失衡天平
    hdu6761lyndon分解
  • 原文地址:https://www.cnblogs.com/root_u/p/5124262.html
Copyright © 2011-2022 走看看