`
clq9761
  • 浏览: 590921 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论
文章列表

Ext基础

    博客分类:
  • Ext
ext 
1.支持命名空间 Ext.namespace("Ext.dojochina"); Ext.dojochina.HelloWorld = Ext.emptyFn(); //命名空间别名 Dc=Ext.dojochina; PN=Ext.dojochina.Person;   2.Ext类继承 Ext.extend(Ext.dojochina.Student,Ext.dojochina.Person,{job:"学生"}); //类实例方法重写 ...
  面向对象的三大特性:封装,继承和多态。   面向对象的四大好处:可维护性,可扩展性,可复用性和灵活性好。   设计模式的原则:   1.单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担 ...
  访问者模式:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的                    前提下定义作用于这些元素的新操作。     即可以在不修改已有程序结构的前提下,通过添加额外的"访问者"来完成对已有代码功能的提升。    要点:   1.访问者模式适用于数据结构相对稳定的系统,它把数据结构和作用于结构上的操作之间的     藕合解脱开,使得操作集合可以相对自由地演化。  2.访问者模式的目的是要把处理从数据结构分离出来。如果系统有比较稳定的数据结构,     又有易于变化的算法的话,使用访问者模式就是比较合适的,因为访 ...
  模板方法模式:定义一个操作中的算法的骨架,而将一些步骤迟到到子类中。   要点:  1.模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。  2.模板方法提供了一个很好的代码复用平台,通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。  3.模板方法是代码复用的一项基本的技术,在类库中尤其重要。     它遵循“抽象类应当拥有尽可能多的行为,应当拥有尽可能少的数据”的重构原则。      适用性:  1.一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。   2.各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。  3.控制子类 ...
  策略模式: 定义了算法家族,分别封装起来,让它们之间可以互相替换。   策略模式让算法独立于使用它的客户而独立变化,此模式让算法的变化,不会影响到使用算法的客户.   应用场景:     1、 多个类只区别在表现行 ...

状态模式

 状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。   主要解决的是当控制一个对象状态转换的条件表达式过于复杂时,把状态的判断 逻辑转移到表示不同状态的                     一系列类当中,可以把复杂的判断逻辑简化。如果状态判断很简单,就没必要用状态模式。 适用场景:        1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。     2.一个操作中含有庞大的多分支结构,并且这些分支决定于对象的状态。     /** * 抽象状态类,定义一个接口以封装与Context的一个特定状态相关的行为。 ...
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。     /** * 单例类 */ public class Singleton { private static Singleton instance = null; // 构造方法让其private,禁止外界利用new创建此类实例的可能 // 所有类都有构造方法,不编码则系统默认生成空的构造方法, // 若有显示定义的构造方法,默认的构造方法就会失效. private Singleton(){ } // 获得本类实例的唯一全局访问点 public stati ...

代理模式

代理模式:为其它对象提供一种代理,以控制对这个对象的访问。   在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在 客户端和目标对象之间起到中介的作用。     /** * Subject类,定义了RealSubject和Proxy的共用接口,这样就在任何 * 使用RealSubject的地方都可以使用Proxy. * */ public abstract class Subject { public abstract void request(); }   /** * RealSubject类,定 ...
 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。                 即从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。  浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所用的对其它对象的引用都仍然指向原来的对象  深复制:把引用对象的变量指向复制过的新对象,而不是原来被引用的对象。     /** * 原型接口 * */ public interface Prototype extends Cloneable{ public abstract Prototype copy(); ...
  观察者模式(发布-订阅模式):定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。                  这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。    ...
  备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。                    这样以后就可将该对象恢复到原先保存的状态。   优点:  1、有时一些发起人对象的内部信息必须保存在发起人对象以外的地方,但是必须要由发起人对象自己读取,     这时使用备忘录模式可以把复杂的发起人内部信息对其他的对象屏蔽起来,从而可以恰当地保持封装的边界。  2、本模式简化了发起人类。发起人不再需要管理和保存其内部状态的一个个版本,客户端可以自行管理     他们所需要的这些状态的版本。     3、当发起人角色的状态改变的时候,有可能这个状态无效,这时候就可 ...
  中介者模式:用一个中介对象来封装一系列的对象交互,从而降低这些对象间的耦合性并且可以独立                   地改变对象间的交互关系。中介者使各对象不需要显示地相互引用,从而使其藕合松散,                   而且可以独立地改变它们之间的交互。   1.中介者模式很容易在系统中应用,也很容易在系统中误用,当系统中出现了"多对多"交互复杂    的对象群时,不要急于使用中介者模式,而要先反思系统在设计上是不是合理。  2.中介者(Mediator)的出现减少了各个同事(Colleague)的藕合,使得可以独立地改变和复用    各个Medi ...

迭代器模式

迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示.  1.当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历时,就应该考虑用迭代器模式。 2.当需要对聚集对象有多种遍历方式时,可以考虑用迭代器模式。 3.迭代器模式在访问数组,集合,列表等数据时,尤其是数据库数据操作时,是非常普遍的应用,     所以各种高级语言 都对它进行了封装,反而给人感觉此模式本身不太常用。     /** * 聚集抽象类 */ public abstract class Aggregate { // 创建迭代器 public abstract ...
 解释器模式:给定一个语言,定义它的文法的一种表示。并定义一个解释器,这个解释器使用该表示来解释                     语言中的句子。 1.如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。   这样就可以构造一个解释器,该解释器通过解释这些句子来解决该问题。 2.当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。 3.使用解释器模式时,可以很容易地改变和扩展文法,因为该模式使用类来表示文法规则,     可使用继承来改变或扩展该文法。  也比较容易实现文法,因为定义抽象语法树中各 ...
  享元模式:运用共享技术有效地支持大量细粒度的对象。   1.享元模式可以避免大量非常相似类的开销,在程序设计中,有时需要生成大量细粒度的类实例来表示数据。    如果能发现这些实例除了几个参数外基本上都是相同的,有时就能够受大幅度地减少需要实例化的类的数量,    如果能把那些参数移到类实例的外面,在方法调用时将它们传递进来,就可以通过共享大幅度地减少单个实例的数目。  2.如果一个应用程序使用了大量的对象,而大量的这些对象造成很大的存储开销时就应该考虑使用享元模式;    享元模式的意图是通过共享有效支持大量细粒度的对象,来提供应用程序的性能,节省系统中重复创建对    象实例的性能消耗 ...
Global site tag (gtag.js) - Google Analytics