设计模式
古怪945
腾讯文学rd
展开
-
【设计模式】代理模式
代理模式: 组成:抽象角色:通过接口或抽象类声明真实角色实现的业务方法。 代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。 真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。 举例:现实生活里,大家租房可能需要通过中介公司(代理类),联系房屋出租者(真实类),我们是自己无法直接联原创 2015-01-10 21:31:12 · 569 阅读 · 0 评论 -
【设计模式】命令模式
命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。 命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 真正被执行的类 package command; public class Zhaozilong { public vo原创 2015-03-12 22:13:54 · 435 阅读 · 0 评论 -
【设计模式】原型模式
构建原型后,自身复制完成对象的创建,如果普通的方式通过new大量创建对象是很慢的,这里通过clone()是非常快的相对new来说 需要类实现Cloneable接口,调用自身的clone方法完成对象的复制。 package com.ufgov; public class CloneObj implements Cloneable { @Override protecte原创 2015-03-08 21:28:24 · 345 阅读 · 0 评论 -
【设计模式】简单工厂
简单工厂只适合业务量不大的情况下,工厂方法是简单工厂的改进版。 统计接口,然后子类分别实现两个产品类,区别在于工厂类的产生方式。 /抽象产品 abstract class Car{ private String name; public abstract void drive(); public String原创 2015-03-08 13:01:55 · 502 阅读 · 0 评论 -
【设计模式】策略模式
算法替换原则:将这种算法封装好,然后调用者根据自己的需要去调用。 优点:可以动态改变对象的行为。 定义统一接口,然后分别实现3个可互相替换的子类实现。 package cl; public interface IDoAction { public void play(); } package cl; public class C1 implements IDoActi原创 2015-03-08 13:36:38 · 407 阅读 · 0 评论 -
【设计模式】工厂方法模式
凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。 技术要点: 1.产品类一定是有相同的接口 2.工厂类负责产品类的创建,而不要直接通过new的方式创建产品类,由一个统一的类完成 package com.factory; public interface IAction { public void doSomeThings(); }原创 2015-03-08 11:58:51 · 362 阅读 · 0 评论 -
【设计模式】装饰者模式
代理模式和装饰模式区别原创 2015-03-07 22:32:39 · 411 阅读 · 0 评论 -
【设计模式】模版方法模式
技术预研:1.钩子方法 2.抽象类 3.访问修饰符 4.final ======================================================= 模版方法:提供统一方法入口,如遇到不同的子类实现,那么由子类完成,共同方法由父类统一实现。 类图: 父类一般由抽象类完成(请注意方法修饰符) 父类: package co原创 2015-02-20 22:49:54 · 366 阅读 · 0 评论 -
【设计模式】抽象工厂
工厂方法有缺点:每次新增产品类,都需要去修改工厂类的代码。。。 我们改进一下: 在原来代码基础上,我们做如下改进 对每个产品都提供一个工厂类: public class EmailFactory implements Provider { public static Email productEmail() { return new Email(); } }原创 2015-03-08 12:15:44 · 394 阅读 · 0 评论 -
【设计模式】建造者模式(builder模式)
工厂模式是创建单个对象,构造者模式是创建复合对象的。 我们在工厂模式基础上,我们来完成改造的过程。 package com.factory; public interface IAction { public void doSomeThings(); } package com.factory; public class Email implements IAction {原创 2015-03-08 13:14:18 · 450 阅读 · 0 评论 -
【设计模式】组合模式
组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便。 public class TreeNode { private String name; private TreeNode parent; private Vector children = new Vector();转载 2015-03-08 13:43:01 · 394 阅读 · 0 评论 -
【设计模式】概述
设计模式六大设计原则 1.单一职责原则:应该有且只有一个原因引起类的变更。 2.里氏替换原则:所有引用基类(父类)的地方必须能透明地使用其子类的对象。 3.依赖倒转原则:真对接口编程,依赖于抽象而不依赖于具体。 4.接口隔离原则:使用多个隔离的接口,比使用单个接口要好。 5.迪米特法则(最少知道原则):一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。原创 2015-03-08 21:17:04 · 427 阅读 · 0 评论 -
【设计模式】观察者模式
观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 我们原创 2015-03-12 20:25:59 · 342 阅读 · 0 评论