
设计模式
勤奋的凯尔森同学
这个作者很懒,什么都没留下…
展开
-
设计模式原则11----建造者模式
个人博客:打开链接建造者模式定义建造者模式(Builder Pattern) 也叫做生成器模式,其定义如下: Separate the construction of a complex object from its representation so that the same construction process can create different represent...原创 2018-05-02 10:50:43 · 586 阅读 · 0 评论 -
设计模式原则7----单例模式
个人博客:打开链接单例模式的定义单例模式(Singleton Pattern)是很简单的模式,定义为: Ensure a class has only one instance, and provide a global point of access to it. 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。我是皇帝我独苗单例模式最典型的例子就是...原创 2018-04-26 23:00:49 · 612 阅读 · 0 评论 -
设计模式原则8----工厂方法模式
个人博客:打开链接 工厂方法模式的定义定义:Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses. 定义一个用于创建对...原创 2018-04-27 13:59:44 · 368 阅读 · 0 评论 -
设计模式原则9----抽象工厂模式
个人博客:打开链接抽象工厂模式的定义Provide an Interface for creating families of related or dependent objects without specifying their concrete classes.(为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。)抽象工厂模式的通用类图我们来...原创 2018-04-29 15:44:33 · 644 阅读 · 0 评论 -
设计模式原则10----模板方法模式
个人博客:打开链接模板方法的定义模板方法(Template Method Pattern): Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of...原创 2018-04-29 17:28:55 · 300 阅读 · 0 评论 -
设计模式原则21----组合模式
个人博客:打开链接一、定义将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。二、通用类图 1:Component 抽象构件角色定义参加组合对象的共有方法和属性,可以定义一些默认的行为或属性。2:Leaf 叶子构件叶子对象,其下再也没有其他的分支,也就是遍历的最小单位。3:Composite 树枝构件树枝对...原创 2018-05-28 20:09:01 · 517 阅读 · 0 评论 -
设计模式原则22----观察者模式
个人博客:打开链接一、定义观察者模式属于对象的行为模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题(被观察者)对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。二、类图三、观察者模式的结构被观察者:从类图中可以看到,类中有一个用来存放观察者对象的Vector容器(之所以使用Vector而不使用Lis...原创 2018-05-28 21:30:46 · 682 阅读 · 0 评论 -
设计模式原则23----门面模式
个人博客:打开链接一、定义要求一个子系统的外部与其内部的通讯必须通过一个统一的对象进行,门面模式提供一个高层次的接口,使得子系统更容易使用。 门面模式注重“统一的对象”,也就是说 提供了一个访问子系统的接口,除了这个接口,不允许有任何访子系统的行为发生。二、类图 更简单的说,门面对象就是外界访问子系统内部的唯一通道,不管子系统是多么的杂乱无章,只要门面对象在,就可以做到...原创 2018-05-29 09:32:22 · 306 阅读 · 0 评论 -
设计模式原则24----备忘录模式
个人博客:打开链接一、备忘录模式的定义Memento Pattern“传说中的后悔药”Without violating encapsulation,capture and externalize an object’s internal state so that the object can be restored to this state later.(在不破坏封装性...原创 2018-05-29 10:18:58 · 376 阅读 · 0 评论 -
设计模式原则25----访问者模式
个人博客:打开链接一、定义封装一些作用于某种数据结果中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。二、类图 Visitor 抽象访问者 抽象类或者接口,声明访问者可以访问哪些元素,具体到程序中就是visit方法的参数定义哪些对象是可以被访问的。ConcreteVisitor 具体访问者 它影响访问者访问到一个类后该怎么干,要做什么事...原创 2018-05-29 14:50:48 · 363 阅读 · 0 评论 -
设计模式原则26----状态模式
个人博客:打开链接一、状态模式的定义Allow an object to alter its behavior when its internal state changes.The object will appear to change its class.(当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类) 状态模式的核心是封装,状态的变更引起了行为的变更,从...原创 2018-05-29 15:41:23 · 501 阅读 · 3 评论 -
设计模式原则27----解释器模式
个人博客:打开链接一、解释器模式的定义Interpreter Pattern Given a language,define a representation for its grammer along with an interpret uses the representation to interpretwntences in the language.(给定一门语言,定义它的...原创 2018-05-29 16:28:13 · 392 阅读 · 0 评论 -
设计模式原则28----享元模式
个人博客:打开链接一、享元模式的定义FLYweight Pattern池技术的重要实现方式Use sharing to support large numbers of finegrained objects officiently.(使用共享对象可有效地支持大量的细粒度的对象) 共享对象细粒度对象内部状态:可共享的信息–不会随环境的改变而改变的信息外部状态:依赖的标记,...原创 2018-05-29 18:02:24 · 373 阅读 · 0 评论 -
设计模式原则29----桥梁模式
个人博客:打开链接一、桥梁模式定义Bridge Pattern也叫做桥接模式Decouple an abstraction from its implementation so that the two can vary independenty.(将抽象的实现解耦,使得两者可以独立的变化)桥梁模式的重点在“解耦”上二、桥梁模式通用类图 Abstraction...原创 2018-05-29 19:02:33 · 366 阅读 · 0 评论 -
设计模式原则6----开闭原则
个人博客:打开链接 开闭原则(Open Closed Principle, OCP)的定义Software entities like classes, modules and functions should be open for extension but closed for modifications.(一个软件实体如类,模块和函数应该对扩展开放,对修改关闭。) 开闭原则告诉...原创 2018-04-26 22:21:22 · 296 阅读 · 0 评论 -
设计模式原则20----迭代器模式
个人博客:打开链接迭代器模式定义Iterator Pattern:Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation. 迭代器模式:它提供一种方法访问一个容器对象中各个元素,而又不需要暴露该对象...原创 2018-05-04 16:22:26 · 342 阅读 · 0 评论 -
设计模式原则12----代理模式
个人博客:打开链接打游戏杀怪兽先看一个例子,是有关于打游戏杀怪兽的。//先定义一个游戏者接口 public interface IGamePlayer { //登陆游戏 public void login(String user, String password); //杀怪,网络游戏的主要角色 public void killB...原创 2018-05-02 18:46:29 · 460 阅读 · 0 评论 -
设计模式原则13----原型模式
个人博客:打开链接个性化电子账单电子账单系统一般包括:账单分析、账单生成器、广告信管理、发送队列管理、发送机、退信处理、报表管理等功能。那既然是广告信,肯定需要一个模板,然后从数据库中把客户的信息一个一个地取出来,放到模板中生成一份完整的邮件,然后扔给发送机进行发送处理,类图为: 广告信模板代码:public class AdvTemplate { //广告信名...原创 2018-05-03 10:18:27 · 537 阅读 · 0 评论 -
设计模式原则14----中介者模式
个人博客:打开链接进销存管理为了引入中介者模式,我们首先来看一下进销存管理这个例子,其UML图为: Purchase负责采购管理,buyIBMComputer指定了采购IBM电脑,refuseBuyIBM是指不再采购IBM了,源代码清单如下: 采购管理:public class Purchase { //采购IBM电脑 public void buy...原创 2018-05-03 14:20:26 · 424 阅读 · 0 评论 -
设计模式原则1----单一职责原则
个人博客:打开链接1、官方定义单一职责原则,英文缩写SRP,全称Single Responsibility Principle。原始定义:There should never be more than one reason for a class to change。官方翻译:应该有且仅有一个原因引起类的变更。简单点说,一个类,最好只负责一件事,只有一个引起它变化的原因。...原创 2018-04-26 09:36:10 · 235 阅读 · 0 评论 -
设计模式原则2----里氏替换原则
个人博客:打开链接里氏替换原则定义里氏替换原则(Liskov Substitution Principle,LSP): 第一种定义: 如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换为o2,程序P的行为没有发生变化,那么类型S是类型T的子类型。第二种定义: Functions that use pointers or ...原创 2018-04-26 09:59:06 · 203 阅读 · 0 评论 -
设计模式原则15----命令模式
个人博客:打开链接命令模式的定义命令模式是一个高内聚的模式,其定义为:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或记录请求日志,可以提供命令的撤销和恢复功能.例子:项目经理执行任务满足客户需求过程说一下:最开始,项目经理有三个部门,美工组、需求组、代码组。客户如果有了新的需求就需要找这三个部门。 客户每个新需求都要跟他们交流,同时,还可能...原创 2018-05-04 10:01:34 · 573 阅读 · 0 评论 -
设计模式原则3----依赖倒置原则
个人博客:打开链接依赖倒置原则定义依赖倒置原则(Dependence Inversion Principle ,DIP)定义如下:High level modules should not depend upon low level modules,Both should depend upon abstractions.Abstractions should not depend...原创 2018-04-26 11:17:16 · 374 阅读 · 0 评论 -
设计模式原则4----接口隔离原则
个人博客:打开链接接口隔离原则定义接口分为两种,实例接口和类接口: 实例接口(Object Interface):在Java中声明一个类,用new关键字产生一个实例,它是对一个类型的事物的描述,这是一种接口。 类接口(Class Interface):Java中经常使用的interface关键字定义的接口。接口隔离有两种定义: Clients should not be fo...原创 2018-04-26 14:13:19 · 248 阅读 · 0 评论 -
设计模式原则16----责任链模式
个人博客:打开链接责任链模式的定义使多个对象都有机会处理请求,从而避免了请求的发送者和接收者的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。例子:古代妇女的枷锁—-三从四德古代女子要 “三从四德”,这里的三从是什么呢?是指“未嫁从父,既嫁从夫,夫死从子”。也就是说,一位女性在结婚前听父亲的,结婚后听丈夫的,丈夫G了听儿子的,没有儿子听小叔子的...原创 2018-05-04 11:01:46 · 381 阅读 · 0 评论 -
设计模式原则17----装饰模式
个人博客:打开链接装饰模式定义Decorator Pattern: Attach additional responsibilities to an object dynamically keeping the same interface. Decorators provide a flexible alternative to subclassing for extending f...原创 2018-05-04 13:44:26 · 327 阅读 · 0 评论 -
设计模式原则5----迪米特法则
个人博客:打开链接迪米特法则定义迪米特法则(Law of Demeter, LoD)也称为最少知识原则(Least Knowledge Principle, LKP),一个对象应该对其他对象有最少的了解。通俗来讲,一个类应该对自己需要耦合或调用的类知道的最少。我就知道你提供的这么多public方法,我就调用这么多,其他的我一概不关心。1.只和朋友交流迪米特法则的英文解释是,...原创 2018-04-26 16:36:37 · 396 阅读 · 0 评论 -
设计模式原则18----策略模式
个人博客:打开链接策略模式的定义Strategy Pattern: Define a family of algorithms, encapsulate each one, and make them interchangeable. 策略模式:定义一组算法,将每个算法都封装起来,并且使他们之间可以互相切换。通用类图 策略模式使用的就是面向对象的继承和多态机制,非常容易...原创 2018-05-04 14:39:34 · 286 阅读 · 0 评论 -
设计模式原则19----适配器模式
个人博客:打开链接适配器模式定义Adapter Pattern:Convert the interface of a class into another interface clients expect.Adapter lets classes work together that couldn’t otherwise because of incompatible interfac...原创 2018-05-04 15:45:45 · 415 阅读 · 0 评论 -
单例模式的8种写法
个人博客:小景哥哥单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。优点:系统内存中该类只存在一个对...原创 2018-12-14 10:34:17 · 318 阅读 · 0 评论