精华内容
下载资源
问答
  • 设计模式(概念解释及原则)

    千次阅读 2019-03-17 20:27:58
    1.什么是设计模式设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。 2.使用设计模式的目的: 为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计...

    1.什么是设计模式?

    设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。

    2.使用设计模式的目的:

    为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

    3. 设计原则

    (一) 开闭原则

    应对扩展开放,而对修改关闭。

    (二) 里氏代换原则

    如果调用的是父类的话,那么换成子类也完全可以运行。

    (三) 依赖倒转原则

    指在软件里面,把父类都替换成它的子类,程序的行为没有变化。

    (四) 接口隔离原则

    定制服务的例子,每一个接口应该是一种角色,不多不少,不干不该干的事,该干的事都要干。

    (五) 迪米特法则

    一个对象应对其他对象有尽可能少的了解。

    (六) 合成复用原则

    在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。

    它的设计原则是:要尽量使用合成/聚合,尽量不要使用继承。

     

    4.具体的23种设计模式

    设计模式分为三种类型,共23种。

    创建型模式:工厂方法模式抽象工厂模式单例模式建造者模式原型模式

    结构型模式:适配器模式装饰者模式代理模式外观模式桥接模式组合模式享元模式

    行为型模式:策略模式模板方法模式观察者模式迭代子模式责任链模式命令模式备忘录模式状态模式访问者模式中介者模式解释器模式

    还有两类:并发型模式和线程池模式。

     

    展开全文
  • 设计模式总结: 5种创建型,7种结构型,11种行为型 一.5种创建型的模式 1.工厂方法模式【工厂方法模式,多个工厂方法模式,静态工厂模式】: 负责实例化同一接口的多个类;定义一个创建产品对象的工厂类,由该...
    设计模式总结:  5种创建型,7种结构型,11种行为型

    1.1  工厂方法模式
        工厂方法模式(根据参数不同,工厂方法返回不同的产品对象),
        多个工厂方法模式(创建不同产品不需要参数),
        静态工厂方法模式(将工厂方法改为静态的,不需要实例化类)
    1.2  抽象工厂:适合产品多变的情况,要生产新的产品就必须在工厂类里面加生产的方法,违背开闭原则。抽象工厂,
           增加一个 工厂类接口,一个接口方法; 各种产品实现这个工厂接口,生产自己对应的产品。
    1.3   单例模式 :Singleton  (懒汉式&饿汉式)
    特殊的工厂方法模式,一个类只有一个实例:
                               1. 拥有一个私有的静态实例;
                               2. 拥有 私有的默认构造函数;
                               3. 静态工厂方法,如果是懒汉式的必须同步的,防止多线程同时操作;
                               4.重写clone()函数,
    返回当前实例对象,默认clone()创建新实例;
    public class SingletonFactory{
               //1.私有的防止外部变量引用;
                 private static SingletonFactory _instance=null;
                //2.私有的默认构造函数,防止使用构造函数实例化;
                 private SingletonFactory(){ 
                         }
                //3.单例静态工厂方法,同步方式多线程同时执行;
    synchronized public  static SingletonFactory getInstance(){
                if(_instance==null){
                        _instance=new SingletonFactory();
                            }
                            retrun _instance;
                }
            //4.重写克隆函数
    public SingletonFactory  clone(){
            return getInstance();
                            }
    }
        
    1.4  建造者模式    StringBuilder
    public class Client {
        public static void main(String[]args){
            Builder  builder = new  ConcreteBuilder();//接口buider,实现接口的具体建造者ConcreteBuilder,导演者Director,
            Director director = new  Director(builder);
            director.construct();
            Product product =  builder.retrieveResult();
            System.out.println(product.getPart1());
            System.out.println(product.getPart2());
        }
    }


    1.5 原型模式复制一个已经存在的实例来返回一个新的实例,而不是新建

    ------------------------------------------------------------------------------------------------------------
    2.1   适配器模式:

    类的适配器:对类进行适配。A继承B,实现接口C。
    对象的适配器:对对象进行包装;A实现接口C,不继承B,包含一个B的对象;
    接口的适配器:对接口抽象化。A实现所有接口,为每个接口提供一个默认实现;
    缺省适配器模式:
          (A extends AbstractB implements interfaceC,那么A即可以选择实现(@Override)接口interfaceC中的方法,也可以选择不实现;A即可以选择实现(@Override)抽象类AbstractB中的方法,也可以选择不实现)

    2.2  装饰器模式:(io流)
    一个接口A,一个接口A的实现类B,一个装饰器C。C实现了A,并且有一个私有的类型为A的成员,构造函数初始化它。

    适配器模式是将一个类A转换为另一个类B;
    装饰器模式是为一个类A增强新的功能,从而变成B;
    代理模式是为一个类A转换为操作类B;


    2.3  代理模式
           
     Proxy实现接口Sourcable,含有一个Source对象

    2.4  外观模式 jdbc
    代理模式(一对一)发展而来的外观模式(一对多)
    客户端访问子系统中的各个类,高度耦合。中间加一个统一接口,降低耦合度,客户端访问该类,该类调用子系统中的各个类。

    2.5  桥接模式  jdbc
    客户端通过访问 访问目标实现类,桥抽象化类包含目标接口类对象,可以赋值 目标接口类的实现类的实例化给他,通过桥调用不同的目标实现类对象。
    2.6 组合
    2.7 享元
    -----------------------------------------
    父类与子类之间:
    1.策略模式:【实现C中函数指针的功能,不同的比较策略】  comparable & Comparator);

    2.模板方法模式

    两个类之间:
    3.观察者模式

    4.迭代子模式 (容器与容器遍历)

    5.责任链模式 (责任链模式) 串的替换---可以使用链式操作)

    6.命令模式

    类的状态:
    7.备忘录模式

    8.状态模式

    通过中间类:
    9.访问者模式

    10.中介模式

    11.解释器模式








    ######################################################################


    1.责任链模式( 过滤器模式 ):
    2.OO思想
    3.Iterator模式:(容器与容器遍历
    4.策略模式Strategy(comparable & Comparator);
    5.动态代理模式
    6.工厂模式
    7.其他模式

    缺省适配模式( 接口和抽象类 );

    *************************************************************************************************************************************************************************************

    面向接口的编程,面向抽象的编程

    1. Java设计模式--责任链
    先写测试,测试驱动开发;---------极限编程
    串的替换---可以使用链式操作
    过滤器链--过滤器模式;

    ################################################
    0826
    2.Java设计模式--oo面向对象
    策略模式--------comparable & Comparator
    封装,继承,多态;
    面向对象思维:
                考虑类:名词,例子:美国人继承人---》人这个类包含国籍这个属性更合理
                属性:不可脱离具体的属性;
                考虑方法;
                类之间的关系;
                 隐藏(封装),降低耦合度;
                继承; is  a    继承的耦合度很强,谨慎使用;
                多态:可扩展 Extensibility

    可扩展原则: 修改不如添加(重载加方法,接口和抽象类 加类);
    ##################################################################################################################################
    面对对象的设计,复用的重点其实应该是抽象层的复用,而不是具体某一个代码块的复用!
    Java接口(interface)和Java抽象类(abstract class)代表的就是抽象类型,就是我们需要提出的抽象层的具体表现。OOP面向对象的编程,如果要提高程序的复用率,增加程序 的可维护性,可扩展性,就必须是面向接口的编程,面向抽象的编程,正确地使用接口、抽象类这些有用的抽象类型作为你结构层次上的顶层。

    抽象类和接口的区别:

    1. Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以(就是interface中只能定义方法,而不能有方法的实现,而在abstract class中则可以既有方法的具体实现,又有没有具体实现的抽象方法),这大概就是Java抽象类唯一的优点吧,但这个优点非常有用。如果向一个抽象类里加入一个新的具体方法时,那么它所有的子类都一下子都得到了这个新方法,而Java接口做不到这一点,如果向一个Java接口里加入一个 新方法,所有实现这个接口的类就无法成功通过编译了,因为你必须让每一个类都再实现这个方法才行,这显然是Java接口的缺点这个在我的另外一篇博客mapreduce 新旧API 区别中有提到类似的问题,在新的mapreduce api中更倾向于使用抽象类,而不是接口,因为这更容易扩展。原因就是上面划线部分所说的。
    2. 一个抽象类的实现只能由这个抽象类的子类给出,也就是说,这个实现处在抽象类所定义出的继承的等级结构中,而由于Java语言的单继承性,所以抽象类作为类型定义工具的效能大打折扣。在这一点上,Java接口的优势就出来了,任何一个实现了一个Java接口所规定的方法的类都可以具有这个接口的类型,而一个类可以实现任意多个Java接口,从而这个类就有了多种类型。(使用抽象类,那么继承这个抽象类的子类类型就比较单一,因为子类只能单继承抽象类;而子类能够同时实现多个接口,因为类型就比较多。接口和抽象类都可以定义对象,但是只能用他们的具体实现类来进行实例化。)
    3. 从第2点不难看出,Java接口是定义混合类型的理想工具,混合类表明一个类不仅仅具有某个主类型的行为,而且具有其他的次要行为。
    4. 结合1、2点中抽象类和Java接口的各自优势,具精典的设计模式就出来了:声明类型的工作仍然由Java接口承担,但是同时给出一个Java 抽象类,且实现了这个接口,而其他同属于这个抽象类型的具体类可以选择实现这个Java接口,也可以选择继承这个抽象类,也就是说在层次结构中,Java 接口在最上面,然后紧跟着抽象类,这下两个的最大优点都能发挥到极至了。这个模式就是“缺省适配模式”。在Java语言API中用了这种模式,而且全都遵循一定的命名规范:Abstract +接口名。(A extends AbstractB implements interfaceC,那么A即可以选择实现(@Override)接口interfaceC中的方法,也可以选择不实现;A即可以选择实现(@Override)抽象类AbstractB中的方法,也可以选择不实现)

    Java接口和Java抽象类的存在就是为了用于具体类的实现和继承的,如果你准备写一个具体类去继承另一个具体类的话,那你的设计就有很大问题了。Java抽象类就是为了继承而存在的,它的抽象方法就是为了强制子类必须去实现的。

    需要注意的是在抽象类中,如果方法没有具体实现(就是方法后面没有{}),那么必须加上abstract来声明这个方法,而接口中不需要使用abstract来声明(抽象类之所以被称为抽象类,就是因为它包含有抽象方法。含有抽象方法的类叫做抽象类)


    先学会用,在研究源码内部原理;
    Over Design 也是一种罪过
    接口与抽象类:需要继承,设计一个基类;    ------交通工具()
                           共同的规范,共性的动作之类,设计一个接口;--------go()

    #################################################################
    3. 设计模式Iterator
    interface里面的方法都是public,可以不写;
    面向接口编程;
    不关心ArrayList或者LinkedList具体实现也能遍历,写Iterator接口,Collection中有返回Iterator的方法,具体不同实现类中实现这个方法,实现方法中写一个内部类实现Iterator的两个函数的具体不同实现:hasNext(),Next();
    #################################################################
    4. 设计模式:策略模式----------comparable & Comparator:
    comparable:
    写一个可复用的sort()对猫狗都可以排序;
    先写一个接口Comparable,并包含方法ComparaTo(),猫狗都实现这个接口;
    ********************************
    Comparator:
    写一个接口Comparator,并包含方法compara(),猫狗中包含一个接口的属性,值为实例化一个Comparator的子类;写一个猫的比较器实现接口Comparator;
    ********************************
    接口中的方法默认都是public的,因此可以省略不写;

    ################################################################
    5. 设计模式:动态代理模式
    类tank实现了接口moveable,
    tank2  继承tank,可以重写里面的方法,调用父类方法,前后加内容--前后加当前时间,计算方法耗时;
    tank3 聚合实现:实现moveable接口,里面有成员 moveable t  ,t.move()前后加内容;

    继承和聚合都可以实现代理,但是继承实现代理不够灵活;
    聚合灵活:不会导致类爆炸,容易交换包裹顺序;
    Tank t=new Tank();
    TankLogProxy tlp=new TankLogProxy (t);
    TankTimeProxy  ttp=new TankTimeProxy(tlp); 
    Moveable m=ttp;
    m.move();
    #################################################################
    6.设计模式:工厂模式
    #################################################################
    7.其他模式:
    #################################################################


    设计模式:
    一.5种创建型的模式
    1.工厂方法模式【工厂方法模式,多个工厂方法模式,静态工厂模式】:

                  负责实例化同一接口的多个类;定义一个创建产品对象的工厂类,由该工厂统一创建继承了同一接口的多个产品的对象; 有大量产品需要创建适用;
    工厂方法模式:
    public class Farm1(){                                          //工厂类
                    public Animal produce(String type){      //Animal 接口;工厂方法函数
                        if (type=="pig"){    
                                return new Pig();
                        }else if(type=="sheep"){
                                  return new Sheep();
                            }
                                }
    }
    多个工厂方法模式:创建不同产品不需要参数。
    public class Farm1(){                                          //工厂类  核心
                    public void producePig(){        //Pig 工厂方法函数
                                return new Pig();             
                                }
                          public void produceSheep(){       //Sheep 工厂方法函数
                                return new Sheep();             
                                }

    }
    静态工厂方法模式:(简单工厂模式)
    将多个工厂方法模式中,工厂方法改为静态,就不需要创建工厂对象了


    2.抽象工厂模式:
    问题:工厂方法一个工厂类承担了所有产品的的创建,如果产品的树形结构需要扩展,必须在工厂类中增加创建的功能;违背开闭原则;
    抽象工厂模式:建立与产品类等级相似的工厂等级结构;为每一个产品提供一个具体的工厂类;扩展一个新产品的时候,只需要增加一个新的工厂类,甚至类似的对应产品多层继承工厂类;
    增加一个工厂类接口,一个接口方法;
    各种产品实现这个工厂接口,生产自己对应的产品。
    适用:产品结构多变或有可能扩展的产品创建中

    3.单例模式:Singleton
    特殊的工厂方法模式,一个类只有一个实例:
                               1.拥有一个私有的静态实例;
                               2. 拥有私有的默认构造函数;
                               3.静态工厂方法,同步的,防止多线程同时操作;
                               4.重写cone()函数,返回当前实例对象,默认clone()创建新实例;
    public class SingletonFactory{
               //1.私有的防止外部变量引用;
                private static SingletonFactory _instance=null;
                //2.私有的默认构造函数,防止使用构造函数实例化;
                private SingletonFactory(){ 
                         }
                //3.单例静态工厂方法,同步方式多线程同时执行;
    synchronized public static SingletonFactory getInstance(){
                if(_instance==null){
                        _instance=new SiongletonFactory();
                            }
                            retrun _instance;
                }
            //4.重写克隆函数
    public SingletonFactory clone(){
            return getInstance();
                            }
    }

    4.建造者模式: StringBuilder 类,增加删除修改各种数据。构造数据集。
    创建符合对象;将各种产品集中了起来;不关注各部分怎么创建用工厂模式,关注各部分用建造者模式;

    各种产品都放List 中。
    Farm5 farm=new Farm5();
    farm.producePig();
    farm.produceSheep();

    farm.sum();

    5.原型模式:prototype  创建复杂耗时的实例。
            复制一个已经存在的实例来返回一个新的实例,而不是新建。
    public class Prototype implements Cloneable{
            public Object clone() throws ConeNotSupporteException{
                    Prototype prototype=(Prototype) super.clone();
                    return prototype;
                        }
    }
    以上是浅复制.

    浅复制和深复制,基本类型值都一样被复制,引用类型的,只有是深复制的时候才会被复制。浅复制,引用的对象不被复制,引用同一个引用对象。



    二.7种结构型的模式

    1.适配器模式
    源角色:Adaptee
    目标角色:Target
    适配器角色:Adapter
                   
        
        Adaptee只有方法operation(),没有newoperation(),但是客户端同时要求又这两种方法,这时候新建一个接口Target,提供一个中间环节Adapter类, 适配器类Adapter继承源角色Adaptee,实现目标角色Target接口。   

    类的适配器:对类进行适配
    对象的适配器:对对象进行包装;
    接口的适配器:对接口抽象化。

    类的适配器模式:
            Source类:operation1()
            Targetable类:接口类,operation1(),  operation2()
            Adapter类:  extends  Source,implements  Targetable

    适配后的类,可以 通过调用Targetable接口来实现对Source的操作

    对象的适配器模式:
            Source类:operation1()
            Targetable类:接口类,operation1(),  operation2()
            Wrapper类: implements  Targetable; 不继承Source,包含一个Source对象,构造函数初始化,operation1(){source.operation1();} 

    接口的适配器模式:
    Sourcable:定义多个接口函数的接口类;
    DefaultWrapper:抽象类,实现了接口Sourcable,为每个接口函数提供一个默认实现;
          解决问题:实现一个接口编写一个类,不必实现所有接口函数;



    2.装饰模式:
    接口类:Sourable 
    源类:Source,实现接口类
    装饰类:Decorator1,实现接口类,含有一个私有接口类型的成员,构造函数初始化;

             Sourable source=new  Source();
            Sourable obj=new  Decorator1(new Decorator2(new Decorator3(source)));
            obj.operator();

    Decorator1:
        private Sourable source;
        public Decorator1(Sourable source)
        {
            super();
            this.source = source;
        }


    适配器模式是将一个类A转换为另一个类B;
    装饰器模式是为一个类A增强新的功能,从而变成B;
    代理模式是为一个类A转换为操作类B;

    3.代理模式
    被代理对象接口Sourcable
    被代理对象Source
    代理者Proxy

    Proxy实现接口Sourcable,含有一个Source对象,跟对象适配器类似, 不同的是在初始化的时候不能由外部传入,在构造函数中new Source();在operation1()中调用source.operation1(),前后可以加入新增内容,跟装饰模式很像,不同的是关注点不同,代理模式关注如何调用,装饰模式关注扩展功能。Proxy实现对Source的调用。还实现了自己的功能。



    4.外观模式:JDBC屏蔽了于数据库进行连接,查询,更新,删除等一系列的操作;
    代理模式(一对一)发展而来的外观模式(一对多)
    客户端访问子系统中的各个类,高度耦合。中间加一个统一接口,降低耦合度,客户端访问该类,该类调用子系统中的各个类。
    目标类-----外观类-----客户端类。外观类中有各个子系统类的对象。

    5.桥接模式:JDBC桥 DriverManager
    抽象化角色:桥接类
    修正抽象化:桥接具体类

    实现化角色:目标接口
    具体实现化:目标实现类

    客户端通过访问桥访问目标实现类,桥抽象化类包含目标接口类对象,可以赋值 目标接口类的实现类的实例化给他,通过桥调用不同的目标实现类对象。



    6.组合模式
    将对象组合成树形结构以表示部分-整体的层次结构。

    组合模式类:节点名称,父节点,孩子节点
    private String  name;
    private TreeNode parent;
    private Vector <TreeNode> v=new Vector<TreeNode>();





    7.享元模式 FlyWeight            java中的数据库连接池
    使用共享的方式,达到高效地支持大量的细粒度对象,他的目的就是节省占用的空间资源,从而实现系统性能的改善。


    三.11种行为型的模式
    父类与子类之间:
    1.策略模式:【实现C中函数指针的功能,不同的比较策略】

    2.模板方法模式

    两个类之间:
    3.观察者模式

    4.迭代子模式

    5.责任链模式

    6.命令模式

    类的状态:
    7.备忘录模式

    8.状态模式

    通过中间类:
    9.访问者模式

    10.中介模式

    11.解释器模式







     

    展开全文
  • web名词解释

    2021-01-22 10:06:51
    MySQL:是一个关系数据库管理系统,由瑞典 MySQL AB公司开发,目前属于 Oracle 旗下产品。 API:(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于...

    HTML:超文本标记语言,标准通用标记语言下的一个应用。

    CSS:层叠样式表(英文全称:Cascading Style Sheets),是一种用来表现 HTML(标准通用标记语言的一个应用)或 XML(标准通用标记语言的一个子集)等文件样式的语言,用于为 HTML 文档定义布局。

    JavaScript:一种直译式脚本语言,其主要作用是在不与服务器交互的情况下修改 HTML 页面内容, 为网页添加各式各样的动态功能。Ecma 国际以 JavaScript 为基础制定了 ECMAScript 标准。

    jQuery:是一个快速、简洁的 JavaScript 框架,是一个优秀的JavaScript 代码库(或 JavaScript 框架)。

    DOM:文档对象模型(Document Object Model,简称 DOM), 是 W3C 组织推荐的处理可扩展标志语言的标准编程接口。

    UI:即 User Interface(用户界面)的简称。泛指用户的操作界面,包含于移动 APP、网页、智能穿戴设备等。

    CSS3:是 CSS(层叠样式表)技术的升级版本,于 1999 年开始制订,2001 年 5 月 23 日 W3C 完成了 CSS3 的工作草案,主要包括盒子模型、列表、超链接方式、语言模块、背景和边框、文字特效、多栏布局等模块 。

    CSS hack:通过在 CSS 样式中加入一些特殊的符号,区别不同浏览器制作不同的 CSS 样式的设置,解决浏览器显示网页特效不兼容性问题。

    PHP: 超文本预处理器(Hypertext Preprocessor),PHP 将程序嵌入到 HTML 文档中去执行,是 Web 开发动态网页制作技术之一。

    IFRAME:是 HTML 标签,作用是文档中的文档,或者浮动的框架(FRAME)。

    Html5:万维网的核心语言,标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改,其主要的目标是将互联网语义化,以便更好地被人类和机器阅读,并同时更好地支持网页中嵌入各种媒体。

    OOP: 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。

    Bootstrap:是美国 Twitter 公司的设计师 Mark Otto 和 Jacob Thornton 合作基于 HTML、CSS、JavaScript 开发的简洁、直观的前端开发框架,使得 Web 开发更加快捷。

    Less: 是一种 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量、混入、函数等功能,让 CSS 更易维护,方便制作主题和扩充。使用 CSS 的语法。

    Sass: Sass(Syntactically Awesome Style Sheets)是一个相对新的编程语言,Sass 为 web 前端开发定义一套新的语法规则和函数,以加强和提升 CSS,Sass 的安装需要 Ruby 环境。

    MySQL:是一个关系型数据库管理系统,由瑞典 MySQL AB公司开发,目前属于 Oracle 旗下产品。

    API:(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而无需访问源码,也无需理解内部工作机制的细节。

    HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。

    RESTful: 表现层状态转化(Representational State Transfer)软件架构风格,提供了一组设计原则和约束条件。

    Web:(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和 HTTP 的、全球性的、动态交互的、跨平台的分布式信息系统。

    Ajax: 即 “Asynchronous Javascript And XML” ( 异 步
    JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。

    XML:可扩展标记语言,标准通用标记语言的子集,是一种
    用于标记电子文件使其具有结构性的标记语言。

    JSON:(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。

    JSONP:(JSON with Padding)是 JSON 的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。

    Laravel: Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。

    BLADE: 快速搭建一个 Web 应用程序的开源框架

    Session:会话,指浏览器和服务器的一次交互。

    Cookie:有时也用其复数形式 Cookies,指某些网站为了辨别
    用户身份、跟踪 session 而储存在用户本地终端上的数据(通常经过
    加密)。

    jQuery Mobile:是 jQuery 框架的一个组件,用于创建移动端 Web 应用的的前端框架。

    ES6: ECMAScript 语言规范第六版。ECMAScript 是一种由
    Ecma 国际通过 ECMA-262 标准化的脚本程序设计语言,是 JavaScript
    的标准。

    Node.js:是 JavaScript 运行在服务端的平台。

    Express: 是一个简洁而灵活的 node.js Web 应用框架。

    VUE: 是一套构建用户界面的渐进式框架。

    Webpack: 是一个模块打包工具,将 Web 开发的各种资源打
    包压缩在指定的文件中。

    Canvas: 画布,是 HTML5 中新增的标签,用于网页实时生
    成图像,并且可以操作图像内容。

    SVG:可缩放矢量图形,是基于可扩展标记语言 XML(标准
    通用标记语言的子集)用于描述二维矢量图形的一种图形格式。

    展开全文
  • 文章借鉴于《设计模式:可复用面向对象软件的基础》 除了名词和图例,别的客户以不用管,后续针对每个模式进行分析 如何将系统分解成对象集合? 关键因素:封装、粒度、依赖关系、灵活性、性能、演化、复用 常用...

    文章借鉴于《设计模式:可复用面向对象软件的基础》

    除了名词和图例,别的客户以不用管,后续针对每个模式进行分析

    如何将系统分解成对象集合?

    • 关键因素:封装、粒度、依赖关系、灵活性、性能、演化、复用
    • 常用设计方法
    1. 写出问题描述,挑出名词、动词,创建相应的类和方法
    2. 关注与系统的协作和职责
    3. 对现实世界建模,映射到设计中

    名词解释

    1. 型构:方法名、参数、返回
    2. 接口:对象操作所定义的所有操作(方法)型构的集合被称为该对象的接口
    3. 类型:标识特定接口的名字(多继承);子类型、超类型
    4. 实例:对象通过实例化来创建,此对象被称为该类的实例
    5. 委托:是一种组合方式,有两个对象参与处理一个请求,接受请求的对象将操作委托给他的代理者(将自己传给委托者,使委托者可以操作自己)

    所用图示:

    类名
    方法

    虚箭头表示一个类实例化另一个类的对象,箭头指向被实例化的对象的类

    类继承(特殊的抽象类,类名和操作等以斜体表示),可以用下图的方式表示伪代码

    组合:箭头表示组合

    模式如何选取(学习过程中记住这些关键点,然后使用)

    1. 考虑涉及模式使如何解决问题的
    2. 浏览模式的意图部分
    3. 研究模式怎么互联
    4. 研究目的相似的模式
    5. 考虑你的设计中哪些使可变的

    展开全文
  • 系统设计名词解释

    千次阅读 2014-12-04 10:42:04
    设计系统时应考录到 增长和变化。   11.PIECES 问题解决框架和检查表(书 P52 )   12.FAST ( Framework for the Application of Systems Thinking ) 方法的 8 个阶段 : 1. 范围定义; ...
  • 小甲鱼零基础入门学习python笔记

    万次阅读 多人点赞 2019-08-14 11:06:30
    也让脚本语言另有一些属于脚本语言的特性: • 语法和结构通常比较简单 • 学习和使用通常比较简单 • 通常以容易修改程序的“解释”作为运行方式,而不需要“编译” • 程序的开发产能优于运行性能 一个脚本可以...
  • 机器学习的名词解释

    千次阅读 2017-10-24 14:50:37
    出乎意料的是,以凸优化的形式设计的算法通常都能在深度网络上工作的很好,虽然很少能找到最小值。 成本(cost) loss 的同义词。 交叉熵(cross-entropy) 多类别分类问题中对 Log 损失...
  • 地理信息系统名词解释大全

    千次阅读 2021-02-22 09:01:49
    地理信息系统名词解释大全。
  • 数据分析常用名词解释

    千次阅读 2020-01-09 09:13:32
    1、互联网常用名词解释 2、统计学名词解释 3、数据分析名词解释 一、互联网常用名词解释 1、PV(Page View)页面浏览量 指某段时间内访问网站或某一页面的用户的总数量,通常用来衡量一篇文章或一次活动带来的流量...
  • 大数据的75个名词解释

    万次阅读 2017-08-01 14:37:52
    :数据挖掘关乎如下过程,从一大群数据中以复杂的模式识别技巧找出有意义的模式,并且得到相关洞见。它与前文所述的「分析」息息相关,在数据挖掘中,你将会先对数据进行挖掘,然后对这些得到的结果进行分析。为了...
  • 1、 DB:即数据库( Database), 是统一管理的相关数据的集合 . DB 能为各种用户共享,具有最小冗余度,... DBMS总是基于某种数据模型,可以分为层次、网状、关系、面向对象 DBMS. 3、DBS:即数据库系统( Datab
  • Python名词解释

    千次阅读 2019-09-18 20:53:55
    二进制文件的例子包括以二进制模式('rb', 'wb' or 'rb+')打开的文件、sys.stdin.buffer、sys.stdout.buffer 以及 io.BytesIO 和 gzip.GzipFile 的实例。 另请参见 text file 了解能够读写 str 对象的文件对象。 ...
  • 设计模式通俗理解

    千次阅读 2016-08-22 22:05:15
    第10个设计模式,享元设计模式 运用共享技术有效地支持大量细粒度的对象
  • 数据库名词解释&概念题

    千次阅读 多人点赞 2019-04-19 19:34:35
    1. 解释事务和程序还有他们的区别。 –事务:事务是数据库提供的一种手段,通过这一手段,应用程序员将一系列的数据库操作组合在一起作为一个整体以便数据库系统提供一组保证,即事务的ACID性质。 –程序:由序列...
  • Qt与设计模式(全)

    千次阅读 多人点赞 2019-10-27 17:18:14
    为什么要学习设计模式创建型模式工厂模式(Factory Pattern)抽象工厂模式(Abstract Factory Pattern)单例模式(Singleton Pattern)建造者模式(Builder Pattern)原型模式(Prototype Pattern)结构型模式...
  • 前端面试题

    万次阅读 多人点赞 2019-08-08 11:49:01
    前端面试题汇总 ... 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?...它和Standards模式有什么区别 21 div+css的布局较table布局有什么优点? 22 img的alt与title有何异同? strong与em的异同? 22 你能...
  • 设计模式之美

    2020-04-05 17:57:41
    一、概念学习导读 1.1 设计原则 SOLID 原则 -SRP 单一职责原则 SOLID 原则 -OCP 开闭原则 SOLID 原则 -LSP 里式替换...1.2 设计模式 创建型 常用的有:单例模式、工厂模式(工厂方法和抽象工厂)、建造者模式。...
  • 测试开发笔记

    万次阅读 多人点赞 2019-11-14 17:11:58
    48 七、补充提高 49 第六章 C语言 49 C语言中的存储 50 数据类型 50 常量 53 结构体 54 条件/分支逻辑 54 Switch 54 If 55 循环 55 For 55 while 56 do…while 56 函数 56 第七章 Windows环境搭建 59 一、名词注解...
  • java面试题2019_java面试题及答案_java面试题库

    千次阅读 多人点赞 2019-05-16 09:31:30
    1、一个.java源文件中是否可以包括多个类(不是内部类)?有什么限制? 2、Java有没有goto? 3、&和&&的区别? 4、switch语句能否作用在byte上,能否作用在long上,...6、char变量中能不能存贮一个中...
  • 前面创建型模式介绍了创建对象的一些设计模式,这节介绍的结构型模式旨在通过改变代码结构来达到解耦的目的,使得我们的代码容易维护和扩展。 代理模式 第一个要介绍的代理模式是最常使用的模式之一了,用一个代理...
  • 对象-关系管理模式 / :是指在关系数据库中扩展,通过定义一系列操作空间对象(如点、线、面)的 API 函数,来直接存储和管理非结构化的空间数据的空间数据库管理模式。 缓冲区分析:是根据分析对象的点、线、面...
  • 建造者模式(Builder Pattern)也称生成器模式,它属于创建型模式
  • 只知道中文的设计模式在后期使用以及看代码的时候还是有障碍的,特别是像我这种英语很差的人,所以要多记一点专用名词比较好哦 设计模式分类 根据其目的(模式是用来做什么的)可分为创建型(Creational),结构型...
  • 大数据技术之名词解释

    千次阅读 2018-12-04 14:34:27
    Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上...
  • 设计模式怎样解决设计问题

    千次阅读 2017-07-04 10:25:36
    设计模式怎样解决设计问题
  • java 面试题 总结

    2009-09-16 08:45:34
    (s1+1运算结果是int,需要强制转换类型) short s1 = 1; s1 += 1;(可以正确编译) 26、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? Math.round(11.5)==12 Math.round(-11.5)==-11 round方法返回与...
  • 数据库基本概念(名词解释)中英版

    千次阅读 2019-04-29 16:42:02
    (2)Logical level(Logical schema) conceptual schema概念模式,用E R model 描述,OO model 进行设计 (3)View level(External schema) 外模式,描述特定用户感兴趣的一部分数据库,隐藏其他部分,通常用...
  • 科技概念/名词解释

    千次阅读 2019-09-03 23:20:42
    科学家们把在研究原子、分子、原子核、基本粒子时所观察到的关于微观世界的系列特殊的物理现象,这些现象无法用牛顿经典物理学解释,所以另命名了一个名称,叫做 量子现象 。 在微观领域中,某些 物理量的变化是以...
  • Spring面试题整理

    千次阅读 2019-03-29 17:55:55
    Bean 工厂是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从正真的应用代码中分离。 最常用的BeanFactory 实现是XmlBeanFactory 类。 6. XMLBeanFactory 最常用的就是org.spring...
  • 心理辅导平台设计

    千次阅读 2017-12-04 10:22:57
    软件工程课程设计 ——心理学指导软件 学生学院 机电工程学院 专业班级 ****** 团队名称 “何弃疗” 队员姓名 *** *** *** *** 2014年12月16日 目录一、团队介绍 二、软件介绍 三、可行性分析 1.引言 2....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,789
精华内容 5,115
关键字:

创建型设计模式名词解释