设计模式
崔世勋
这个作者很懒,什么都没留下…
展开
-
设计模式--命令模式
命令模式:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。命令者将对象动作和接收者包进对象中, public interface Command{ public void excute();}public class LightOnCommand implements Command{ Light light; pub...转载 2014-04-08 15:48:11 · 656 阅读 · 0 评论 -
GOF模式总结
创建型Abstract Factory,抽象工厂模式,提供一个接口,可以创建一系列相关或相互依赖的对象,而无须指定它们具体的类。 Builder,生成器模式,将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示。 Factory Method,工厂方法模式,定义一个创建对象的接口,但由子类决定需要实例化哪一个类,工厂方法使得子类实例化的过程推迟。 Prototype,原...转载 2017-09-22 10:13:26 · 413 阅读 · 0 评论 -
设计模式--单件模式
单件模式:确保一个类只有一个实例,并提供一个全局访问点。采用私有构造器。1.懒汉,线程安全 public class Singleton { private static Singleton instance; private Singleton (){} public static synchronized Singleton ge...转载 2014-04-08 15:20:55 · 715 阅读 · 0 评论 -
设计模式--代理模式
代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问。被代理的对象可以是远程的对象、创建开销大的对象或需要安全控制的对象。 最后欢迎大家访问我的个人网站: 1024s...转载 2014-04-08 18:09:28 · 654 阅读 · 0 评论 -
设计模式--状态模式
状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。状态模式和策略模式很相似,二者的区别在于意图。对于状态模式而言,我们将一群行为封装在状态对象中,context的行为随时可委托到那些对象中的一个。对于策略模式而言,客户通常主动指定Context所要组合的策略对象是哪一个。 最后欢迎大家访问我的个人网站: 1024s...转载 2014-04-08 17:58:08 · 628 阅读 · 0 评论 -
设计模式--组合模式
组合模式:允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。使用组合模式,我们能把相同的操作应用在组合和个别对象上。最后欢迎大家访问我的个人网站: 1024s...转载 2014-04-08 17:42:10 · 592 阅读 · 0 评论 -
设计模式--迭代器模式
迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。把游走的任务放在迭代器上,而不是聚合上。这样简化了聚合的接口和实现,也让责任各得其所。设计原则:尽量让每个类保持单一责任,也就是只有一个引起变化的原因。最后欢迎大家访问我的个人网站: 1024s...转载 2014-04-08 17:33:18 · 628 阅读 · 0 评论 -
设计模式--模板方法模式
模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。算法内的步骤不要切割的太细,否则会较没有弹性。钩子是一种被声明在抽象类中的方法,但只有空的或者默认的实现。钩子的存在,可以让子类有能力对算法的不同点进行挂钩。要不要挂钩,由子类自行决定。策略模式是定义一个算法族,并让这些算法可以互换,而模板...转载 2014-04-08 17:11:15 · 660 阅读 · 0 评论 -
设计模式--策略模式
策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。设计原则:多用组合,少用继承。封装变化。针对接口编程,不针对实现编程。原则和模式可以在软件开发生命的任何阶段应用。 这里把鸭子的飞行的行为想像为“一族算法”。封装变化:把会变化的部分取出并封装起来,便以后可以轻易地改动或扩充此部分,而不影响不需要变化的部分。针对接...转载 2014-04-08 11:05:57 · 623 阅读 · 1 评论 -
设计模式--工厂模式
简单工厂:这其实不是一个设计模式,反而比较像一种编程习惯。利用一个静态方法定义一个简单工厂是很常见的方法,常称为静态工厂。虽然可以在使用方法时,不用实例化方法,但也不能通过继承来改变创建方法的行为。工厂方法模式:定义一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。将产品的“实现”从“使用”中解耦,同时可以定义一个默认的工厂方法来产生某些具体的产...转载 2014-04-08 15:14:46 · 651 阅读 · 0 评论 -
设计模式--装饰者模式
装饰者模式:动态将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。设计原则:类应该对扩展开放,对修改关闭。我们只需要将注意力集中在设计中最有可能改变的地方,然后应用开放-关闭原则。 最后欢迎大家访问我的个人网站: 1024s...转载 2014-04-08 14:16:45 · 683 阅读 · 0 评论 -
设计模式--观察者模式
观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。设计原则:为了交互对象之间的松耦合设计而努力。改变主题或观察者其中一方,并不会影响另一方。因为两者是松耦合,只要他们之间的接口仍被遵守。实现观察者模式的方法不只一种,但是以包含Subject与Observer接口的类设计的做法最常见。(1)封装变化:在观察者模式中,会改...转载 2014-04-08 11:38:19 · 613 阅读 · 0 评论 -
设计模式--外观模式
外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。适配器是包装一个类,而外观模式是包装多个类。而且,外观意图是简化接口,而适配器的意图是将接口转换成不同的接口。设计原则:最少知识原则:只和你的密友谈话。不要让太多的类耦合在一起,免得修改系统中的一部分,会影响到其他部分。 最后欢迎大家访问我的个人网站: 1024s...转载 2014-04-08 16:14:37 · 550 阅读 · 0 评论 -
设计模式--适配器模式
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。以上是对象适配器的图。以上是类适配器的图。 最后欢迎大家访问我的个人网站: 1024s...转载 2014-04-08 16:08:13 · 635 阅读 · 0 评论 -
设计模式-Builder模式
建造者模式(Builder pattern)通过将一个复杂对象的构建过程与它的表现分离,使得构建的过程可以自由扩展,降低部件与组装过程的耦合,是创建型模式。考虑这样一个场景,假如有一个类(User),里面有很多属性,并且你希望这些类的属性都是不可变的(final),就像下面的代码。public class User { private final String firstNam...转载 2018-10-17 15:59:15 · 158 阅读 · 0 评论