Last blog I have showed you how to export data from database. If you don't want to dump all data from database you can add --where parameter. If you want dump user info where age bigger then 27 the command is like following.
We need to convert java beans to another java bean when pass it from one layer to another. For example, you need to convert PO(persistent object) to BO(business object) when pass it from DAO layers to business layers. I recommend you to use Dozer instead of converting them by yourself.
If you want to reduce the relationship between a set of objects mediator pattern is a good choice . In mediator pattern objects don't know each others . All object to send the " event " to the mediator . Mediator knows every object and invoke the method of them if needed. In this page I will show you how "button" and "text" works in mediator pattern.
In this page I will show you how to use zookeeper as a configuration service. I use a standalone zookeeper for the demonstration. If you want to build a high availability configuration service click here for more detail.
Four roles in command pattern are client, invoker, receiver and command. Command invokes a method of Receiver to finish one command. Invoker knows which command will be executed. Invoker and Receiver do not know each other. After packaging the command you can repeat or undo it.
The best example of iterator pattern are source code of util package in JDK. If you want to learn more, I recommend you read the source code of JDK. (Including but not limited to:Iterator, ArrayList and HashMap). In this page I will make an easy example to show how iterator works. The structure of classes is like following.
In this page I will show you how to export and import sql file in command line. I assume you have installed MySQL in your environment, the database name is "user_db", the table is "users_tb", the password of this database is "password" and the username is "root".
You can use proxy pattern in your program, if you don't want use real object for some reason. For example, creating a real object is expensive or real object is in the remote machine. The key of proxy pattern is proxy object and real object implement the same interface and proxy object hold an instance of real object.
Flyweight pattern help you use as less memory as possible in your program. Let's say you want print a word (helloWorld) in your program. You can define 10 characters one by one (h, e, l, l, o, W, o, r, l, d). I think you certainly won't do this. When you define a string in java JVM won't new it directly it will check if this string exists or not. If this string is not defined then create a new one otherwise return the exist one. This is flyweight design pattern.
Composite pattern is used to handle a group of objects in the same way. Let's say we have two different kinds of File. The one is TxtFile and the other one is Directory. In composite pattern we treat them as File in the same way. The code is like following.
Facade pattern is very easy to understand. Let's say you have to call different subclasses to implement a feature. You can use a facade class to hide the detail of bottom layer. The sample code is like following.
The aim of decorator pattern is adding new features without creating subclass. Subclass cannot add multiple features flexibly and dynamically. Decorator pattern can solve these problems. Let's say you want make special pie with different material.
Let's say you have an interface named "NewInterface"; you have two classes which implement the interface. Client will loop the list of NewInterface. The code of client is like following.
If you build root maven project the children project will be built automatically. In this page I will show you how to build multiple maven projects without inheriting. Let's say you have multiple maven projects like following.
A tutorial about common design patterns. Using design patterns in your project can help you save your time and make your code clean and efficient.