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.
Bridge pattern is useful for add a common property to a series of objects. Let's say we have a series of vehicles; like car and train. Different vehicles has different kind of wheels. It is easy to change wheels of vehicles after making wheel as a property of vehicles.
Lazy initialization pattern is similar to lazy initialization singleton. The key point of lazy initialization is "no need no create". The sample of code is like following.
Sometimes creating a new object is expensive, you need use "new" keyword and set properties. Prototype pattern is a good way to create the instance without "new" keyword. You can change the value of properties when needed after cloning object. Example code is like following.