随笔 - 390  文章 - 51  评论 - 166  阅读 - 199万

随笔分类 -  Java设计模式

1 2 下一页
代理模式也很简单
摘要:代理模式定义 为其他对象提供一种代理以控制对这个对象的访问。 角色介绍 Subject抽象主题角色 抽象主题类可以是抽象类也可以是接口,是一个最普通的业务类型定义,无特殊要求。 RealSubject具体主题角色 也叫做被委托角色、被代理角色。是业务逻辑的具体执行者。 Proxy代理主题角色 把所有 阅读全文
posted @ 2021-08-12 19:24 lee0oo0 阅读(138) 评论(0) 推荐(0) 编辑
门面模式,就是这么简单
摘要:一、门面(外观)模式介绍 1.1门面模式现实例子 一个电源总开关可以控制所有电器的打开或关闭状态。 无论是空调、冰箱、电视、电脑、风扇等等,只要是电器都受这个电闸控制。只要这个电闸将关闭,所有的电器都会受到牵连(一同关闭)。 电源总开关(电闸)即为该系统的外观模式设计。 1.2回到代码世界 比如,我 阅读全文
posted @ 2021-08-12 19:03 lee0oo0 阅读(137) 评论(0) 推荐(0) 编辑
观察者模式
摘要:观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让他们能够自动更新自己 。以下是例子: public abstract class Citizen { List pols; String help="normal"; public void setHelp(String help){ this.help = help; } public String getHelp(){ return this.help; } public abstract void ... 阅读全文
posted @ 2012-06-09 13:37 lee0oo0 阅读(371) 评论(1) 推荐(1) 编辑
策略模式
摘要:策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。以下是例子: public abstract class Strategy { public abstract void method(); } public class StrategyImplA extends Strategy{ public void method() { System.out.println("这是第一个实现"); } } public class StrategyImplB extends Strategy{ publ... 阅读全文
posted @ 2012-06-09 12:09 lee0oo0 阅读(170) 评论(0) 推荐(0) 编辑
状态模式
摘要:状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。以下是例子: public interface Weather { String getWeather(); } public class Rain implements Weather { public String getWeather() { return "下雨"; } } public class Sunshine implements Weather { public String getWeather() { return "阳光"; } } public clas 阅读全文
posted @ 2012-06-08 16:55 lee0oo0 阅读(187) 评论(0) 推荐(0) 编辑
迭代模式
摘要:迭代模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。以下是例子: public interface Iterator { Object next(); void first(); void last(); boolean hasNext(); } public class IteratorImpl implements Iterator{ private List list; private int index; public IteratorImpl(List list){ inde... 阅读全文
posted @ 2012-06-08 16:37 lee0oo0 阅读(271) 评论(0) 推荐(0) 编辑
抽象工厂模式
摘要:抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。以下是例子: //创建黑色动物的工厂 public class BlackAnimalFactory implements IAnimalFactory{ public ICat createCat() { return new BlackCat(); } public IDog createDog() { return new BlackDog(); } } //创建白色动物的工厂 public class WhiteAnimalFactory implements IAnimalF... 阅读全文
posted @ 2012-05-30 16:12 lee0oo0 阅读(230) 评论(0) 推荐(0) 编辑
备忘录模式
摘要:备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。以下是例子: public class Originator { String stata; static Memento temp; public String setState(String str){ //设置状态 System.out.println("State="+str); return str; } public Memento CreateMemento(String st... 阅读全文
posted @ 2012-05-28 15:40 lee0oo0 阅读(173) 评论(0) 推荐(0) 编辑
中介者模式
摘要:中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。以下是例子: public class ColleagueA extends Colleague { public void action() { System.out.println("普通员工努力工作"); } } public class ColleagueB extends Colleague { public void action() { System.out.println("前台注意了"); } } / 阅读全文
posted @ 2012-05-28 14:55 lee0oo0 阅读(204) 评论(0) 推荐(0) 编辑
命令模式
摘要:命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。 //命令接受者 public class Receiver { public void Action(){ System.out.println("烧茄子"); } } //命令抽象类 public abstract class Command { protected Receiver receiver; public Command(Receiver receiver){ this.receiver = receiver; } p... 阅读全文
posted @ 2012-05-24 22:12 lee0oo0 阅读(157) 评论(0) 推荐(0) 编辑
原型模式
摘要:原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。以下是例子: //必须要实现Cloneable ,调用clone()方法才不会抛出异常 public abstract class AbstractSpoon implements Cloneable{ String spoonName; public void setSpoonName(String spoonName){ this.spoonName = spoonName; } public String getSpoonName(){ return spoonName; ... 阅读全文
posted @ 2012-05-24 21:52 lee0oo0 阅读(164) 评论(0) 推荐(0) 编辑
责任链模式
摘要:责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并顺着这条链传递该请求,直到有一个对象处理它为止。以下是例子: //接口Request拥有getType与execute方法 public class RequestStudent implements Request{ public String getType() { return "StudentRequest"; } public void execute() { System.out.println("[RequestStudent] :\t Stu 阅读全文
posted @ 2012-05-24 10:24 lee0oo0 阅读(236) 评论(0) 推荐(0) 编辑
代理模式(增加动态代理)
摘要:代理模式:为其他对象提供一种代理以控制对这个对象的访问。以下是例子: public class ObjectImpl implements Object{public void action() {System.out.println("==========");System.out.println("==========");System.out.println("这是被代理的类");System.out.println("==========");System.out.println("======= 阅读全文
posted @ 2012-05-23 22:07 lee0oo0 阅读(255) 评论(0) 推荐(1) 编辑
桥接模式
摘要:桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。以下是例子: public class Jacket extends Clothing{ public void personDressCloth(Person person) { System.out.println(person.getType()+"穿马甲"); } } public class Trouser extends Clothing{ public void personDressCloth(Person person) { System.out.println(person.getTy... 阅读全文
posted @ 2012-05-22 21:50 lee0oo0 阅读(271) 评论(0) 推荐(0) 编辑
组合模式
摘要:组合模式:将对象组合成树形结构以表示"部分-整体"的层次结构。"Composite使得用户对单个对象和组合对象的使用具有一致性。" public abstract class AComponent { protected String name; public AComponent(String name){ System.out.println(name); } abstract public void Add(AComponent c); //添加结点 abstract public void Remove(AComponent c); //移除结点 阅读全文
posted @ 2012-05-21 13:00 lee0oo0 阅读(146) 评论(0) 推荐(0) 编辑
享元模式
摘要:享元模式:运用共享技术有效地支持大量细粒度的对象,主要是通过HashMap对键是否存在的判断。以下是例子: public class FlyweightImpl implements Flyweight{ public void action(int arg) { System.out.println("参数值"+arg); } } public class FlyweightFactory { private static Map flyweights = new HashMap(); public static Flyweight getFlyweight(St... 阅读全文
posted @ 2012-05-21 11:35 lee0oo0 阅读(177) 评论(0) 推荐(0) 编辑
装饰模式
摘要:装饰模式:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。以下是例子: public class SquarePeg implements Work{ public void insert() { System.out.println("方形粧插入"); } } public class Decorator implements Work{ private Work work; private ArrayList others = new ArrayList(); public Decorator(Work wo... 阅读全文
posted @ 2012-05-21 11:16 lee0oo0 阅读(240) 评论(0) 推荐(0) 编辑
适配器模式
摘要:适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那个类可以一起工作。以下是例子: //定义接口 public interface ITarget { public void run(); public void fly(); } //其中的方法必须与接口中的其中一个方法的方法名相同 public class Sources { public void run(){ System.out.println("run"); } } //继承与实现,由于继承的类中有个方法的名字与接口相同,所以只要重写一个方法即可 pu 阅读全文
posted @ 2012-05-19 16:44 lee0oo0 阅读(219) 评论(0) 推荐(0) 编辑
外观模式
摘要:外观模式:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这个子系统更加容易使用。以下是例子: public class Facade { ServiceA sa; ServiceB sb; public Facade(){ sa = new ServiceAImpl(); sb = new ServiceBImpl(); } public void methodA(){ sa.methodA(); sb.methodB(); } } //测试类 public class Test {... 阅读全文
posted @ 2012-05-19 15:55 lee0oo0 阅读(195) 评论(0) 推荐(0) 编辑
建造者模式
摘要:建造者模式:将一个复杂对象的构成与它的表示分离,使得同样的构建过程可以创建不同的表示。以下是例子://抽象各种部件interface VehicleBuilder {void BuildFrame();void BuildEngine();void BuildWheels();void BuildDoors();void Builder();}//根据实际实现抽象部件类public class CarBuilder implements VehicleBuilder {Shop shop = new Shop();public void BuildFrame() {shop.hashput(& 阅读全文
posted @ 2012-05-19 12:26 lee0oo0 阅读(225) 评论(0) 推荐(0) 编辑

1 2 下一页
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示