当前位置: 首页 > news >正文

哪里有免费的网站模板下载wordpress 显示文章固定链接

哪里有免费的网站模板下载,wordpress 显示文章固定链接,公众号开发渠道二维码怎么做,湖北潜江今天最新消息目录 思维导图 什么是职责链模式#xff1f; 有什么优点呢#xff1f; 有什么缺点呢#xff1f; 什么场景使用呢#xff1f; 代码展示 ①、职责链模式 ②、加薪代码重构 思维导图 什么是职责链模式#xff1f; 使多个对象都有机会处理请求#xff0c;从而避免请…目录 思维导图 什么是职责链模式 有什么优点呢 有什么缺点呢 什么场景使用呢 代码展示 ①、职责链模式 ②、加薪代码重构 思维导图 什么是职责链模式 使多个对象都有机会处理请求从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链并沿着这条链传递该请求直到有一个对象处理它为止。 我要请假一个月我发送审批给纪委但是纪委只能批两小时以内的假没有权限批假一个月就需要转交给纪老师纪老师也没有权限批假一个月就转交给米老师这时米老师说“好准假了”。 这里一层一层的审批就像一条职责链一个链条逐层转交自己的请求。 Handler定义一个处理请示的接口。 ConcreteHandler1具体处理者类处理它所负责的请求可访问它的后继者如果可处理该请求就处理它否则就将该请求转发给它的后继者。 有什么优点呢 减少类和类之间的联系降低耦合满足迪米特法则 有什么缺点呢 中介者可能会很多很复杂 什么场景使用呢 有多个对象可以处理同一个请求在不明确指定接收者的情况下向多个对象中的提交请求可动态指定一组对象处理请求 代码展示 场景 ①、职责链模式 Handler类定义一个处理请示的接口 abstract class Handler {protected Handler successor;public void SetSuccessor(Handler successor) //设置继任者{this.successor successor;}public abstract void HandleRequest(int request); //处理请求的抽象方法 } ConcreteHandler1类具体处理者类 class ConcreteHandler1 : Handler {public override void HandleRequest (int request){if(request 0 request 10) //0到10处理此请求{Console.WriteLine({0} 处理请求 {1}, this.GetType().Name, request);}else if(successor ! null){successor.HandleRequest(request); //转移到下一位}} } ConcreteHandler2类 class ConcreteHandler2 : Handler {public override void HandleRequest(int request){if (request 10 request 20) //0到10处理此请求{Console.WriteLine({0} 处理请求 {1}, this.GetType().Name, request);}else if (successor ! null){successor.HandleRequest(request); //转移到下一位}} } 客户端代码 Handler h1 new ConcreteHandler1(); Handler h2 new ConcreteHandler2(); Handler h3 new ConcreteHandler3(); h1.SetSuccessor(h2); //设置职责链的上家与下家 h2.SetSuccessor(h3);int[] requests { 2, 5, 14, 22, 18, 3, 27, 20 };foreach (int request in requests) //循环给最小处理者提交请求不同的数额有不同权限处理者处理 {h1.HandleRequest(request); }Console.ReadKey(); ②、加薪代码重构 Request类申请 class Request {//申请类别private string requestType;public string RequestType{get { return requestType; }set { requestType value; }}//申请内容private string requestContent;public string RequestContent{get { return requestContent; }set { requestContent value; }}//数量private int number;public int Number{get { return number; }set { number value; }} } Manager类管理者 abstract class Manager {protected string name;//管理者的上级protected Manager superior;public Manager(string name){this.name name;}//设置管理者的上级public void SetSuperior(Manager superior){this.superior superior;}//申请请求abstract public void RequestApplications(Request request); } CommonManager类经理 class CommonManager : Manager {public CommonManager(string name) : base(name) { }public override void RequestApplications(Request request){if (request.RequestType 请假 request.Number 2){Console.WriteLine({0}:{1} 数量{2} 被批准, name, request.RequestContent, request.Number);}else{if (superior ! null){superior.RequestApplications(request);}}} } Majordomo类总监 class Majordomo : Manager {public Majordomo(string name) : base(name) { }public override void RequestApplications(Request request){if (request.RequestType 请假 request.Number 5){Console.WriteLine({0}:{1} 数量{2} 被批准, name, request.RequestContent, request.Number);}else{if (superior ! null){superior.RequestApplications(request);}}} } GeneralManager类总经理 class GeneralManager : Manager {public GeneralManager(string name) : base(name) { }public override void RequestApplications(Request request){if (request.RequestType 请假 request.Number 5){Console.WriteLine({0}:{1} 数量{2} 被批准, name, request.RequestContent, request.Number);}else if (request.RequestType 加薪 request.Number 500){Console.WriteLine({0}:{1} 数量{2} 被批准, name, request.RequestContent, request.Number);}else if (request.RequestType 加薪 request.Number 500){Console.WriteLine({0}:{1} 数量{2} 再说吧, name, request.RequestContent, request.Number);}} } 客户端代码 CommonManager jinli new CommonManager(金利); Majordomo zongjian new Majordomo(宗剑); GeneralManager zhongjingli new GeneralManager(钟精励); jinli.SetSuperior(zongjian); zongjian.SetSuperior(zhongjingli);Request request new Request(); request.RequestType 请假; request.RequestContent小菜请假; request.Number 1; jinli.RequestApplications(request);Request request2 new Request(); request2.RequestType 请假; request2.RequestContent 小菜请假; request2.Number 4; jinli.RequestApplications(request2);Request request3 new Request(); request3.RequestType 加薪; request3.RequestContent 小菜请求加薪; request3.Number 500; jinli.RequestApplications(request3);Request request4 new Request(); request4.RequestType 加薪; request4.RequestContent 小菜请求加薪; request4.Number 1000; jinli.RequestApplications(request4);Console.ReadKey(); 涉及到的知识点 1、一个类里面有哪些东西 2、类和实例 什么是类 就是具有相同的属性和功能的对象的抽象的集合。注意 类名称首字母大写。多个单词则各个首字母大写对外公开的方法需要用‘public’修饰符。 什么是实例 就是一个真实的对象。比如我们都是‘人’而你和我其实就是‘人’类的实例了。 什么是实例化 创建对象的过程使用new关键字来创建。 Cat cat new Cat(); //其实做了两件事情Cat cat; //第一步、声明一个Cat的对象对象名为cat cat new Cat(); //第二步、将此cat对象实例化 3、字段和属性 什么是字段 是存储类要满足其设计所需要的数据字段是与类相关的变量。 private string name ; //name就是一个字段私有的类变量 注意 如果在定义字段时在字段的类型前面使用了readonly关键字那么字段就为只读字段它只能在以下两个位置被赋值或者传递到方法中被改变。在定义字段时赋值在类的构造函数内被赋值或传递到方法中被改变而且在构造函数中可以被多次赋值。 属性是什么 是一个方法或一对方法体。提供对类或对象的访问。 属性怎么用呢 它有两个方法get和set。 get访问器从属性获取值。返回与声明的属性相同的数据类型表示的意思是调用时可以得到内部字段的值或引用 set访问器为属性赋值。没有显式设置参数但它有一个隐式参数用关键字value表示它的作用是调用属性时可以给内部的字段或引用赋值。 属性有什么作用 限制外部类对类中成员的访问权限定义在类级别上。 private int _age; //年龄 public int Age {get //也可以直接在属性中进行判断操作、设置限制{if (_age 0 _age 150) //如果年龄大于 0并且小于150的表示输入正确{return _age; //则返回输入的年龄}else //否则表示输入错误{return 18; //返回指定年龄18}}set { _age value; } } 静态属性是什么 在属性前面加static关键字这个属性就成为了静态属性。 有什么作用呢 不管类是否有实例它们都是存在的。当从类的外部访问时必须使用类名引用而不是实例名。 class Person {private static string name; //字段public static string Name //属性{get { return name; }set { name value; }} } static void Main(string[] args) {Person.Name 小菜; //不需要实例化Person类即可直接对属性赋值 } 属性和字段的公有部分解释 内存 字段分配内存属性不分配内存 命名规范 字段Camel大小写属性Pascal小写 4、修饰符 在变量前面可以加上访问修饰符readonly、static readonly只读读取该字段的值不能给字段赋值 static静态字段可以直接通过类名访问该字段 5、访问修饰符有哪些 public公有的对任何类可访问private私有的只在类的内部可以访问成员默认是这个protected保护的只允许该类的派生类访问internal内部的同一项目所有类可访问                 6、this关键字传递的是什么 用于区分类的成员和本地变量或参数作为调用方法的实参                 //this调用成员变量或成员方法 class Person {private string name; //字段public void setName(string name) //方法{this.name name; //将参数值赋予类中的成员变量}//成员变量和setName()方法中的形式参数的名称相同都为name那么如何区分使用的是哪一个变量呢//使用this关键字代表本类对象的引用this.name指Person类中name成员变量等号后面的name指传过来的形参name } this作为方法的返回值 public Book getBook() {return this; //返回Book类引用 }在getBook类中方法的返回值为Book类所以方法体中使用return this这种形式将Book类的对象返回 this关键字和对象之间有什么关系 this引用的就是本类的一个对象。 如果省略this会怎么样 直接写成namename只是把形参name赋值给参数变量本身而已成员变量name的值没有改变             7、构造方法 什么时候用就是对类进行初始化在创建该类的对象时就会调用。有哪些特点与类同名 无返回值 不需要void在new时候调用       //希望每个小猫一诞生就有姓名 class Cat {private string name ; //声明Cat类的私有字符串变量namepublic Cat(string name) //定义Cat类的构造方法参数是输入一个字符串{this.name name; //将参数赋值给私有变量name}public string Shout(){return 我的名字叫name 喵;} } 注所有类都有构造方法如果你不编码则系统默认生成空的构造方法若有定义的构造方法那么默认的构造方法就会失效这个构造方法什么也不做只是为了让用户能够顺利地实例化 8、方法重载 是什么指方法名相同但参数的数据类型、个数或顺序不同的方法。一同二不同 有什么好处在不改变原方法的基础上新增功能。 class Animal {private string name;//方法重载方法名相同、数据类型、个数/顺序不同public Animal{} //无参的构造方法public Animalstring name //有参的构造方法{this.name name;} } 9、抽象类 什么是抽象类 目的抽取相同代码实现封装思想 特点 抽象类不能实例化抽象方法是必须被子类重写的方法如果类中包含抽象方法那么类就必须定义为抽象类不论是否还包含其他一般方法 什么是重写 将父类实现替换为它自己的实现 虚成员 抽象成员 关键字 virtual abstract 实现体 有实现体 没有实现体被分号取代 在派生类中被覆写 可重写也可不重写使用override 必须被重写使用override 10、六大原则 六大原则 11、六大关系 六大关系
http://www.zqtcl.cn/news/156224/

相关文章:

  • 网站设计原则的历史网站开发 模块
  • 做企业网站收费自己的网站怎么做排名
  • 做网站网站软件开发经费预算
  • 优化网站图片网站图片布局
  • 有效的网站需要做到什么意思商业网站是什么
  • 网站设计开发网站用c 建网站时怎么做导航菜单栏
  • 哪些网站做推广比较有效果厦门网站建设公司名单
  • 街头小吃加盟网站建设网站专题制作
  • 网站论坛推广方案加强思政部网站建设
  • 查看WordPress网站插件北京西站附近的景点有哪些
  • 网站建设技术合同模板下载怎么用phpstudy做网站
  • 青岛网站建设找二维码生成器怎么弄
  • 百度突然搜不到我的网站网络安全软件有哪些
  • 江阴做网站的地方网站维护需要的知识
  • 做网站是域名怎么申请网页设计跟做网站一样吗
  • 叮当快药网站谁做的网站开发遇到的最大困难
  • 一个域名可以建几个网站毕业设计可以做哪些简单网站
  • 知名商城网站建设报价wordpress 后台 logo
  • 单位网站建设框架yellow网站推广联盟
  • html5和php做网站做网站租用服务器
  • 网站开发中效率较高的编程语言公司域名注册流程
  • 万户网站管理系统4.0cms监控系统手机版下载
  • 宁波专业网站建设怎么做如何做一个虚拟网站
  • 网站栏目建设调研公司怎么建立一个网站
  • 苍溪建设局网站网站建设和维护采购协议
  • 代做网站微信号下载 wordpress插件
  • 泉州住房建设局网站wordpress输入html代码
  • 为什么访问外国网站速度慢沈阳网站公司排名
  • 网站建设+泰安网站项目建设策划方案
  • 微信人生里面微网站怎么做wordpress 第三方登录 代码