hitol
SDUT
展开
-
设计模式(1):单例设计模式
单例设计模式: 定义:确保一个类只有一个实例,并且自行实例化,并向整个系统提供这个实例。 饿汉式: class Single { private static final Single s = new Single(); // 限制产生多个对象 private Single() { } // 通过该方法获得实例对象 public S原创 2015-07-25 15:04:17 · 653 阅读 · 0 评论 -
设计模式(9):命令模式
命令模式:定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 通用类图: Receiver接受者角色:该角色就是干活的角色,命令传递到这里是应该被执行的Command命令角色需要执行的所有命令都在这里声明Invoker调用者角色接收到命令并执行命令。原创 2015-09-12 21:11:28 · 490 阅读 · 0 评论 -
设计模式(7):原型模式
原型模式的定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。不通过new关键字来产生一个对象,而是通过对象复制来实现的模式就叫做原型模式。原型模式通用代码:class PrototypeClass implements Cloneable { @Override protected PrototypeClass clone()原创 2015-09-05 20:05:51 · 604 阅读 · 0 评论 -
设计模式(8):中介者模式
定义:用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变他们之间的交互。 中介者模式的类图:Mediator:抽象中介者角色ConcreteMediator:具体中介者角色Colleague:同事角色 每一个同事角色都知道中介者角色,而且与其他的同事角色通信的时候,一定要通过中介者角色协作。原创 2015-09-10 21:34:58 · 516 阅读 · 0 评论 -
6大设计原则(6):开闭原则
开闭原则是Java世界中最基本的设计原则,它指导我们如何建立一个稳定的、灵活的系统。定义:一个软件实体,如类、模块和函数,应该对扩展开放,对修改关闭。 什么意思呢?就是你写的这个类,或者是接口、函数,当因需求发生变化而要进行修改的时候,不应该去修改原代码,而是对原代码进行扩展。 举个书店售书的栗子: interface IBook { // 获得书名原创 2015-07-23 15:54:19 · 666 阅读 · 0 评论 -
6大设计原则(5):迪米特法则
迪米特法则:LoD也被称为最少知识原则定义:一个对象应该对其他对象有最少的了解。 通俗的说就是一个类应该对自己需要耦合或调用的类知道的最少,类内部如何复杂跟我们没有关系我们所要了解的只是类对外提供的public方法。 迪米特法则对类的低耦合性提出明确的要求,包含4个含义: 1.只和朋友交流一个例子:老师让体委点一下女生的数量。 class Te原创 2015-07-23 10:18:41 · 994 阅读 · 0 评论 -
6大设计原则(1):单一职责原则
定义:应该且仅有一个原因引起类的变更。 理解:如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力,这种耦合会导致脆弱的设计。当变化发生时,设计会遭受到意想不到的破坏。 假如一个类A,有两个职责a,b,当职责a由于需求发生变化而需要修改时,有可能会导致职责b的功能发生故障。 解决:将类中的职责分开,原创 2015-07-21 17:23:25 · 907 阅读 · 0 评论 -
6大设计原则(3):依赖倒置原则
依赖倒置原则:DIP定义:高层模块不应该依赖低层模块,两者都应该依赖其抽象抽象不应该依赖细节细节应该依赖抽象 什么是高层模块? 大概就是main方法那一块吧什么是低层模块?各个类、接口抽象就是指接口或抽象类,两者不能被实例化细节就是实现类,可以实例化对象 依赖倒置原则在Java中的表现:面向接口编程模块间的依赖通过抽象发生,实现类之间不发生直接的依赖原创 2015-07-22 10:07:19 · 786 阅读 · 0 评论 -
设计模式(6):代理模式
代理模式:定义:为其他对象提供一种代理以控制对这个对象的访问。 Subject抽象主题角色:抽象主题类可以是抽象类也可以是接口。 RealSubject具体主题角色:被代理角色 Proxy代理主题角色:代理类,负责对真实角色的应用,把所有抽象主题类定义的方法限制委托给真实主题角色实现,并且在真实角色处理完毕前后做预处理和善后处理工作。就是替具体原创 2015-08-02 16:16:46 · 567 阅读 · 0 评论 -
6大设计模式(4):接口隔离原则
接口隔离原则: 接口分两种:实例接口:Java中的类类接口:interface定义的接口 原则的两种定义:1.客户端不应该依赖它不需要的接口2.类间的依赖关系应该建立在最小的接口上 需要对接口进行细化,保持纯洁性。接口尽量细化,同时接口中的方法尽量少,增强专门性。 接口隔离原则是对接口进行规范约束,包含4层含义:1.接口要尽量小这是原创 2015-07-22 17:22:28 · 687 阅读 · 0 评论 -
6大设计原则(2):里氏替换原则
里氏替换原则:LSP定义:如果对于每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都换为o2时,程序的行为没有发生变化,那么S是T的子类型。 在继承的时候,父类出现的地方子类就可以出现,子类可替代父类,因为子类中有父类的方法,然而父类却不可以替代子类,因为子类中可能有父类没有的方法。这就是所谓的向下转型是不安全的。 使用继承有很多优原创 2015-07-21 20:57:29 · 779 阅读 · 0 评论 -
设计模式(5):建造者模式
建造者模式: 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 类图: 4个角色:1.Product产品类通常是实现了模板方法模式。2.Builder抽象建造者规范产品的组建,一般是由子类实现。3.ConcreateBuilder实现抽象类定义的所有方法,并且返回一个组件好的对象。4.Direc原创 2015-08-01 10:17:02 · 750 阅读 · 0 评论 -
设计模式(4):模板方法模式
模板方法模式:定义: 定义一个操作中的算法框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方法模式非常简单,仅仅使用了Java的继承机制,但它是一个应用非常广泛的模式。 在软件开发工程中,如果相同一段代码复制过两次,就需要对设计产生怀疑,架构师要明确地说明为什么相同的逻辑要出现两次或更多次。 模板方法模式的优原创 2015-07-29 16:18:37 · 650 阅读 · 0 评论 -
设计模式(3):抽象工厂模式
抽象工厂模式: 定义:为创建一组相关或相互依赖的对象提供一个接口,而且无须指定他们的具体类。 抽象工厂模式是工厂方法模式的升级版本,在有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方法。 通过女娲造人的例子来简单了解一下这个模式。 上篇文章中的女娲只是造出了不同肤色的人种,没有定义性别,这篇文章我们就来实现定义性别这个需求。原创 2015-07-29 14:52:21 · 620 阅读 · 0 评论 -
设计模式(2):工厂方法模式
工厂方法模式: 定义: 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使用一个类的实例化延迟到子类。 举个栗子:我们要生产水果罐头,我们应该怎么做呢?首先,我们需要准备好原料。其次我们需要一个罐头工厂,往工厂里运送不同的原料,出来的就是不同的罐头。 原料就是苹果啊、橘子啊等等的这些类。 interface IFruits { publ原创 2015-07-27 10:20:56 · 707 阅读 · 0 评论 -
设计模式(10):责任链模式
责任链模式:定义:是多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。 责任链模式的重点是在“链”上,由一条链去离相似的请求在链中央决定谁来处理这个请求,并返回相应的结果。 通用类图: Handler实现三个职责:一是定义一个请求的处理方法HandleM原创 2015-09-13 11:10:58 · 622 阅读 · 1 评论