среда, 13 апреля 2011 г.

Думка №1

Вот думаю: завязать с блогосрачеством и еще с кучей всякой фигни.
Но скосив взгляд чуть вверх, на цифру 1, начинаю сомневаться в успехе. Кому нужна джава? Кому нужен дзен?
Ладно, всем бай! Пошел спать.

Посредник

import static java.lang.System.out;
import java.util.*;
public class app
{
 public static void main(String[] args)
 {
   out.println("Create ChatRoom");
   IChatRoom room=new ChatRoom();
   RussianUser ru=new RussianUser("Ivan");
   AmericanUser us=new AmericanUser("Jon");
   room.register(ru);
   room.register(us);
   out.println("reg users:");
   room.listUsers();
   ru.send("Jon","hello, Jon!");
   us.send("Ivan","Ok!");
   ru.send("Jon","Good by, Jon!");
   
   
 } 
}
interface IChatRoom
{
 void send(String from,String to,String message);
 void register(User _user);
 void listUsers();
 
}
class ChatRoom implements IChatRoom
{
 private Hashtable<String, User> users = new Hashtable<String,User>();
 public void send(String from,String to,String message)
 {
  users.get(to).receive(from,message);
 }
 public void register(User _user)
 {
  users.put(_user.getName(),_user); _user.setChat(this);
 }
 public void listUsers()
 {
  for(User user:users.values())
  {
   out.println(user.getName());
  }
 }
}
class User
{
 private IChatRoom chat;
 private String name;
 public User(String name){this.name=name;}
 public void setChat(IChatRoom chat){this.chat=chat;}
 public IChatRoom getChat(){return this.chat;}
 public String getName(){return this.name;}
 public void send(String to, String message)
    { chat.send(name, to, message);  }
  public void receive(String from, String message)
    { out.printf("\n%1s to %2s: '%3s'\n",from, name, message);  }
}
class RussianUser extends User
{
  public RussianUser(String name){super(name);}
  public void receive(String from, String message)
    {  out.println("\nRussian User receive message:");
  super.receive(from,  message); 
    }
}
class AmericanUser extends User
{
 public AmericanUser(String name){super(name);}
  public void receive(String from, String message)
    {  out.println("\nAmerican User receive message:");
  super.receive(from, message);  
     }
}

Посредник(mediator) - позволяет централизованно управлять большим количеством похожих классов в системе(коллеги) коллеги не знают о друг друге но знают посредника. Посредник знает об всех коллегах(не обязательно использовать общий интерфейс, т.е. это могут быть совершенно разные объекты! - хотя тут можно подумать).
Основная мысль - централизовать управление системой в одном месте.
чтобы не упустить зависимое поведение различных объектов.

воскресенье, 10 апреля 2011 г.

Грязь

Наставник: что дороже: золото или грязь?
Джеки Чан: золото, однако!
Наставник: а если я дам тебе немного зерен?
/фильм Шаолинь/

среда, 6 апреля 2011 г.

Легко

Шагай легко шаг за шагом. Будто-бы каждый шаг сам по себе и нет цели. Будто-бы некая сила изнутри ведет неведомым уму путем.