Java review-design pattern
Design Patterns (Factory, Abstract Factory, singleton, DAO, Proxy):
1. Factory: In Factory pattern, we create object without exposing the creation logic to the client and refer to newly created object using a common interface.
2. Abstract Factory: Abstract Factory patterns work around a super-factory which creates other factories. This factory is also called as factory of factories. In Abstract Factory pattern an interface is responsible for creating a factory of related objects without explicitly specifying their classes. Each generated factory can give the objects as per the Factory pattern.
3.Singleton: This pattern involves a single class which is responsible to create an object while making sure that only single object gets created. This class provides a way to access its only object which can be accessed directly without need to instantiate the object of the class.
4.Builder: A Builder class builds the final object step by step. This builder is independent of other objects.
5. Prototype: This pattern involves implementing a prototype interface which tells to create a clone of the current object. This pattern is used when creation of object directly is costly. For example, an object is to be created after a costly database operation. We can cache the object, returns its clone on next request and update the database as and when needed thus reducing database calls.
6.Adapter: Adapter pattern works as a bridge between two incompatible interfaces. A single class which is responsible to join functionalities of independent or incompatible interfaces.
7. Bridge: Bridge is used when we need to decouple an abstraction from its implementation so that the two can vary independently.
8. Filter pattern or Criteria pattern: is a design pattern that enables developers to filter a set of objects using different criteria and chaining them in a decoupled way through logical operations.
9.Decorator pattern allows a user to add new functionality to an existing object without altering its structure.
10.Facade pattern hides the complexities of the system and provides an interface to the client using which the client can access the system. This type of design pattern comes under structural pattern as this pattern adds an interface to existing system to hide its complexities.
11. In proxy pattern, a class represents functionality of another class. This type of design pattern comes under structural pattern. In proxy pattern, we create object having original object to interface its functionality to outer world.
12.chain of responsibility pattern creates a chain of receiver objects for a request. This pattern decouples sender and receiver of a request based on type of request.
13.Data Access Object Pattern or DAO pattern is used to separate low level data accessing API or operations from high level business services.
个人分析:
1.Factory,AbstractFactory 还有 Singleton 都是生成对象的设计模式
工厂是放入参数,通过接口产生对象,封装内部的生成的过程
抽象工厂是生成工厂的工厂,是工厂类的父类,可以抽象为接口,根据不同的类来实现不同的工厂。
单例模式是通过单例方法直接生成一个唯一的对象,并且不需要初始化对象就可以使用
2. builder和prototype
builder的实际意义就是通过一步一步生成的模式最终建立一个对象,例如stringbuilder
prototype是克隆一个原来有的对象,将原先对象保存起来,可以在克隆出来的对象进行操作再返回,也可以直接返回克隆的对象
3. adapter, bridge,filter
adapter:两个不相同接口相互适应
bridge: decoupling
filter:设置标准,过滤掉一些对象,
4.Decorator,Facade
Decorator:在不改变原来对象的前提下,建立一个新的对象,
Facde: 通过接口隐藏复杂的程序逻辑,值给用户暴露一个封装好的内容
5. In proxy pattern,chain of responsibility pattern
proxy:代理模式,创建一个对象来集成原来的对象,并且通过原来的对象与外部世界进行交互
chain of responsibility: 由一系列的发送者和接收者连接而成,并且在处理请求的时候并不知道发送者是谁。
Java review-design pattern的更多相关文章
- [Java] Design Pattern:Code Shape - manage your code shape
[Java] Design Pattern:Code Shape - manage your code shape Code Shape Design Pattern Here I will intr ...
- Template Method Design Pattern in Java
Template Method is a behavioral design pattern and it’s used to create a method stub and deferring s ...
- java设计模式大全 Design pattern samples in Java(最经典最全的资料)
java设计模式大全 Design pattern samples in Java(最经典最全的资料) 2015年06月19日 13:10:58 阅读数:11100 Design pattern sa ...
- java design pattern - adapter pattern
场景 适配器模式 总结 参考资料 场景 在编程中我们经常会遇到驴头不对马嘴的情况,比如以前是继承A的接口的对象,现在外部调用的时候需要该对象已B接口的形式来调用 ,这个时候我们可以让对象同时集成A和B ...
- [转]Design Pattern Interview Questions - Part 4
Bridge Pattern, Composite Pattern, Decorator Pattern, Facade Pattern, COR Pattern, Proxy Pattern, te ...
- [转]Design Pattern Interview Questions - Part 2
Interpeter , Iterator , Mediator , Memento and Observer design patterns. (I) what is Interpreter pat ...
- [转]Design Pattern Interview Questions - Part 1
Factory, Abstract factory, prototype pattern (B) What are design patterns? (A) Can you explain facto ...
- Design Pattern: Observer Pattern
1. Brief 一直对Observer Pattern和Pub/Sub Pattern有所混淆,下面打算通过这两篇Blog来梳理这两种模式.若有纰漏请大家指正. 2. Use Case 首先我们来面 ...
- design pattern及其使用
什么是设计模式? design pattern是一个通用的,可以被重用的关于一个常见的问题的解决方案. 为什么要用设计模式? 引入设计模式的理论基础非常简单.我们每天都会碰到问题.我们可能碰到决定使用 ...
- Design Pattern —— Singleton
Design Pattern —— Singleton 强力推荐枚举和类级内部类方式实现单例模式 单例模式是开发中非常常用的一种模式,简单的说,我们希望一个类永远都只有一个对象. 主要有两个用途: ...
随机推荐
- 函数的作用域、作用域链以及return关键字
1.作用域 全局作用域:在函数外部使用var关键字定义的变量 局部作用域:在函数内部使用var关键字定义的变量 特点 (1)局部变量无法直接影响全局变量 (2)在局部作用域中可以使用全局作用 ...
- server端并发聊天
mul_server和mul_client实现了客户端发什么消息,服务器端回复什么消息 server_dialog和mul_client实现了客户端与服务器并发通信
- springboot与安全
概念: 安全 Spring Security是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型.他可以实现强大的web安全控制.对于安全控制,我们仅需引入sprin ...
- php数据结构课程---6、常见排序有哪些
php数据结构课程---6.常见排序有哪些 一.总结 一句话总结: 冒泡排序(Bubble sort):依次交换 选择排序 ( Selection Sort ):在未排序序列中找到最小(大)元素,依次 ...
- System.Web.Mvc.HttpNotFoundResult.cs
ylbtech-System.Web.Mvc.HttpNotFoundResult.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutral, ...
- 04.如何升级扩展以支持Visual Studio 2019
更新.vsixmanifest 我们需要对.vsixmanifest文件进行一些更新.首先,我们必须更新支持的VS版本范围 <InstallationTarget> 这是一个版本,支持Vi ...
- 一个四五年的Java开发程序员,该准备哪些去面试?
上周面试了一周,感触颇深,总结一下. 面试了公司大概有阿里,携程,爱奇艺,唯品会,途牛,bilibili,大众点评,阿里和爱奇艺是电话面试,其他现场面试. 首先,五年左右,应该算高级开发工程师,大部分 ...
- 【LGP5112】FZOUTSY
题目 如果是\(hash\)做法的话显然就是把每一个位置后面的\(k\)个位置的hash值拿出来做一个莫队板子就好了 考虑一下牛逼的\(SAM\) 我们完全可以构造出来一棵后缀树,对于每个点找到其祖先 ...
- 在scrapy中过滤重复的数据
当为了确保爬到的数据中没有重复的数据的时候,可以实现一个去重的item pipeline 增加构造器方法,在其中初始化用于对与书名的去重的集合 在process_item方法中,先取出item中要判断 ...
- 数据库连接客户端 dbeaver 程序包以及使用说明
dbeaver 是一个基于 Eclipse 的数据库客户端,支持几乎所有常见的数据库.分为商业版和社区版,社区版可以免费使用. 官网和 GitHub https://dbeaver.io/ https ...