• 大话设计模式(读书笔记)


    大话设计模式

    第一章 代码无错就是优?-- 简单工厂模式

    1.1 面试受挫:使用面向对象语言实现计算器控制台运算程序

    1.2 初学者代码毛病:命名规范,特殊情况

    1.3 代码规范

    1.4 面向对象编程:容易维护、容易扩展、容易复用

    1.5 活字印刷,面向对象

    1. 只需要该要改的字,此为可维护;
    2. 这些字并非用完这次就无用,完全可以在后来的印刷中重复使用,此为可复用;
    3. 此诗若要加字,只需另刻字即可,这是可扩展;
    4. 只需要将活字移动就可以满足排列需求,此是灵活性好。

    1.6 面向对象的好处:通过封装、继承、多态把程序的耦合度降低,用设计模式可以使得程序更加的灵活,容易修改,而且易于复用。

    1.7 复制 VS. 复用: 复制黏贴是非常不好的编码习惯,分一个类出来,让计算和现实分开

    1.8 业务的封装:让业务逻辑和界面逻辑分开,让其耦合度下降才可以达到容易维护或扩展。

    Operation运算类

    public class Operation{
        public static double GetResult(double numberA , double numberB, string operate)
        {
            double result = 0d;
            switch(operate)
            {
                ...
            }
            return result;
        }
    }

    客户端代码

    static void Main(string[] args){
        try
        {
            console.write("");
            ...
        }
        catch
        {
        }
    }

    1.9 紧耦 VS. 松耦合

    如果要加一个平方根运算
    把加减乘除等运算分离,修改其中一个不影响另外的几个,增加运算算法也不影响其他代码
    Operation运算类 public class Operation { private double _numberA = 0; private double _numberB = 0 ;

        public double NumberA
        {
            get { return _numberA;}
            set { _numberA = value;}
        }
        public double NumberB
        {
            get { return _numberB;}
            set { _numberB = value;}
        }
        public virtual double GetResult()
        {
            double result = 0;
            return result;
        }
    }

    加减乘除类

    class OperationAdd : Operation
    {
        public override double GetResult()
        {
            double result = 0;
            result = NumberA + NumberB;
            return result;
        }
    }  
    class OperationSub:Operation
    {
        ...参考上面
    }  
        class OperationMul:Operation
    {
        ...参考上面
    }
        class OperationDiv:Operation
    {
        ...参考上面
    }
  • 相关阅读:
    error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
    configure: error: Cannot find OpenSSL's libraries
    PHP编译configure时常见错误
    解决PHP编译cURL的reinstall the libcurl问题
    Linux环境PHP7.0安装
    PHP 7的一些引人注目的新特性简单介绍
    (转).net webconfig使用IConfigurationSectionHandler自定section
    Asp.Net MVC 使用FileResult导出Excel数据文件
    ASP.NET MVC:通过 FileResult 向 浏览器 发送文件
    [老老实实学WCF] 第十篇 消息通信模式(下) 双工
  • 原文地址:https://www.cnblogs.com/Losers-AFC/p/3306135.html
Copyright © 2020-2023  润新知