桥梁模式:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
import java.util.function.Consumer;
public class Run {
public interface IProduct{
public void create();
}
public abstract class AbsFactory{
IProduct product;
public AbsFactory(IProduct product){
this.product = product;
}
public void createProduct(){
this.product.create();
}
}
public class Car implements IProduct{
public void create() {
// TODO Auto-generated method stub
}
}
public class Phone implements IProduct{
public void create() {
// TODO Auto-generated method stub
}
}
public class Factory extends AbsFactory{
public Factory(IProduct product) {
super(product);
// TODO Auto-generated constructor stub
}
}
public static void main(String[] args) {
Run run = new Run();
Car car = run.new Car();
Factory f = run.new Factory(car);
f.createProduct();
//转行
Phone phone = run.new Phone();
Factory f1 = run.new Factory(phone);
f1.createProduct();
}
}
享元模式:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
import java.util.function.Consumer;
public class Run {
public class SignInfo{
private String key;
public SignInfo(String key) {
// TODO Auto-generated constructor stub
this.key = key;
}
}
public class SignInfoFactory{
HashMap<String, SignInfo> pool = new HashMap<String, SignInfo>();
public SignInfo getInfo(String key){
SignInfo info =null;
if(!pool.containsKey(key)){
info = new SignInfo(key);
pool.put(key, info);
}else{
info = pool.get(key);
}
return info ;
}
public void init(){
for(int i=0;i<4;i++){
String detail = "des "+i;
for(int j=0;j<10;j++){
String key = detail+ " res "+j;
getInfo(key);
}
}
}
}
public static void main(String[] args) {
Run run = new Run();
SignInfoFactory f = run.new SignInfoFactory();
f.init();
String key = "des "+1+ " res "+2;
//直接从对象池中取
f.getInfo(key);
}
}
状态模式:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
import java.util.function.Consumer;
public class Run {
public abstract class State{
abstract void start();
abstract void run();
abstract void stop();
}
public class StartState extends State {
@Override
void start() {
// TODO Auto-generated method stub
}
@Override
void run() {
// TODO Auto-generated method stub
}
@Override
void stop() {
// TODO Auto-generated method stub
}
}
public class RunState extends State {
@Override
void start() {
// TODO Auto-generated method stub
}
@Override
void run() {
// TODO Auto-generated method stub
}
@Override
void stop() {
// TODO Auto-generated method stub
}
}
public class StopState extends State {
@Override
void start() {
// TODO Auto-generated method stub
}
@Override
void run() {
// TODO Auto-generated method stub
}
@Override
void stop() {
// TODO Auto-generated method stub
}
}
public class StateManager {
private State state;
public State getState() {
return state;
}
public void setState(State state) {
this.state = state;
}
}
public static void main(String[] args) {
Run run = new Run();
}
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
import java.util.function.Consumer;
public class Run {
public class Memento {
int state;
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
}
public class MementoManager{
Memento memento;
public Memento getMemento() {
return memento;
}
public void setMemento(Memento memento) {
this.memento = memento;
}
}
public class Robot{
int state;
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
public Memento createMemento(){
return new Memento();
}
public void restoreMemento(Memento memento){
this.setState(memento.getState());
}
}
public static void main(String[] args) {
Run run = new Run();
Robot robot = run.new Robot();
MementoManager mg = run.new MementoManager();
robot.setState(1);
mg.setMemento(robot.createMemento());
robot.setState(2);
robot.setState(3);
//robot error
robot.restoreMemento(mg.getMemento());
//
robot.setState(4);
}
}
import java.util.Iterator;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
import java.util.function.Consumer;
public class Run {
public interface IProject{
public String getInfo();
}
public class ProjectIterator implements Iterator{
private List<IProject> list = new ArrayList<IProject>();
public ProjectIterator(List<IProject> list2) {
// TODO Auto-generated constructor stub
this.list = list2;
}
public void forEachRemaining(Consumer arg0) {
// TODO Auto-generated method stub
}
public boolean hasNext() {
// TODO Auto-generated method stub
return false;
}
public Object next() {
// TODO Auto-generated method stub
return null;
}
public void remove() {
// TODO Auto-generated method stub
}
}
public class A implements IProject{
private List<IProject> list = new ArrayList<IProject>();
public void addProject(IProject pro){
list.add(pro);
}
public String getInfo() {
// TODO Auto-generated method stub
return "";
}
public ProjectIterator getIterator(){
return new ProjectIterator(list);
}
}
public static void main(String[] args) {
Run run = new Run();
A a = run.new A();
A b = run.new A();
a.addProject(a);
a.addProject(b);
ProjectIterator iterator = a.getIterator();
while(iterator.hasNext()){
}
}
}