public class adaptee {
public static void main(String[] args){
Target target=new Adapter(new Achieve());
target.use();
}
}
interface Target{
void use();
}
interface OldTarget{
void originalUse();
}
class Adapter implements Target{
OldTarget oldTarget;
Adapter(OldTarget oldTarget){
this.oldTarget=oldTarget;
}
@Override
public void use() {
// TODO Auto-generated method stub
oldTarget.originalUse();
}
}
class Achieve implements OldTarget{
@Override
public void originalUse() {
// TODO Auto-generated method stub
System.out.println("abc");
}
}
<pre name="code" class="java">public class agent {
public static void main(String[] args) {
// TODO Auto-generated method stub
Animal a=new catProxy(new Cat());
a.eat();
}
}
interface Animal{
void eat();
}
class Cat implements Animal{
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("cat eat");
}
}
class catProxy implements Animal{
Cat cat=null;
public catProxy(Cat cat ){
this.cat=cat;
}
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("agent to cat");
cat.eat();
}
}
<pre name="code" class="java">package cn.citi.design_mode;
import java.util.ArrayList;
import java.util.List;
public class ObserverMode {
public static void main(String[] args) {
Observer ob = new Observer();
User u1 = new User(1, "a");
User u2 = new User(2, "b");
Officer o1 = new Officer(3, "c", "o");
Officer o2 = new Officer(4, "d", "o");
Teacher t1 = new Teacher("e", 5, "t");
ob.addUser(u1);
ob.addUser(u2);
ob.addUser(o1);
ob.addUser(o2);
ob.addUser(t1);
ob.changeState();
Officer o3 = new Officer(3, "c", "p");
ob.removeUser(o3);
ob.changeState();
}
}
interface ObserverOp {
void notifyAllUser();
void addUser(User user);
void removeUser(User user);
void changeState();
}
class Observer implements ObserverOp {
List<User> list = new ArrayList<>();
@Override
public void notifyAllUser() {
// TODO Auto-generated method stub
for (User u : list) {
u.userNotify();
}
}
@Override
public void addUser(User user) {
// TODO Auto-generated method stub
list.add(user);
}
@Override
public void removeUser(User user) {
int index = list.indexOf(user);
if (index > -1) {
list.remove(index);
}
}
@Override
public void changeState() {
// TODO Auto-generated method stub
System.out.println("states changed");
notifyAllUser();
}
}
class User {
int id = 0;
String name = "";
User(int i, String s) {
this.id = i;
this.name = s;
}
public void userNotify() {
System.out.println(name + " nofitied ");
}
}
class Officer extends User {
String type = "";
int id = 0;
String name = "";
Officer(int i, String s, String t) {
super(i, s);
this.type = t;
// TODO Auto-generated constructor stub
}
public void UserNotify() {
System.out.println("extends " + name + " nofitied ");
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Officer other = (Officer) obj;
if (id != other.id)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
class Teacher extends User {
String type = "";
int id = 0;
String name = "";
Teacher(String s, int i, String t) {
super(i, s);
this.type = t;
}
public void UserNotify() {
System.out.println("extends " + name + " nofitied ");
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Teacher other = (Teacher) obj;
if (id != other.id)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
public class decorator {public static void main(String[] args) {// TODO Auto-generated method stub Market market=new Original(); Market mymarket=new AppleDecorator(new BananaDecorator(new OrangeDecorator(market))); mymarket.show(); }}interface Market{ void show();}class Original implements Market{@Overridepublic void show() {// TODO Auto-generated method stubSystem.out.println("original show");}}class AppleDecorator implements Market{ Market market=null;AppleDecorator(Market market){this.market=market;} @Overridepublic void show() {// TODO Auto-generated method stub market.show(); System.out.println("apple decorator"); }}class BananaDecorator implements Market{Market market=null;BananaDecorator(Market market){this.market=market;} @Overridepublic void show() {// TODO Auto-generated method stubmarket.show();System.out.println("Banana decorator"); }}class OrangeDecorator implements Market{ Market market=null;OrangeDecorator(Market market){this.market=market;} @Overridepublic void show() {// TODO Auto-generated method stubmarket.show();System.out.println("Orange decorator");}}