Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
KatyaPetrova
import java.sql.*; import java.util.*; import java.lang.*; class Rextester { public static void main(String[] args) { for(int i = 0; i < 3; i++) { iFactory factory; if(i == 0) // одну итерацию делаем для получения данных по параметрам { factory = new DataFactory(); System.out.println("=== iFactory as DataFactory ===="); } else if (i == 1) { factory = new FineFactory(); System.out.println("=== iFactory as FineFactory ===="); } else { factory = new CheapFactory(); System.out.println("=== iFactory as CheapFactory ===="); } List<aData> list_items = new ArrayList<aData> (); list_items.add( factory.getByParams("Cisco", 1, 3, 900) ); list_items.add( factory.getByParams("Cisco", 1, 3, 1050) ); list_items.add( factory.getByParams("Cisco", 0, 6, 950) ); list_items.add( factory.getByParams("Yealink", 1, 1, 900) ); for(int j = 0; j < list_items.size(); j++) { list_items.get(j).showName(); } } } } interface iFactory { public aData getByParams(String brand, int resolution, int functions, int weight); } class FineFactory implements iFactory { @Override public aData getByParams(String brand, int resolution, int functions, int weight) { aData retData; switch(resolution) { case 12: if (functions == 3){ retData = new Cisco(resolution, functions, weight); break; } else { retData = new Staff("VoIP-телефон Yealink SIP-T21P E2, протоколы связи: SIP, громкая связь (Hands Free) ,подключение гарнитуры"); break; } case 10: retData = new Empty("Unknown resolution: ITEM NOT FOUND!("); break; default: retData = new Noname("VoIP-телефон Cisco SPA502G - самый популярный выбор среди пользователей по версии Яндекс.Маркет и самым минимальным весом - всего 900г!"); break; } return retData; } } class CheapFactory implements iFactory { @Override public aData getByParams(String brand, int resolution, int functions, int weight) { aData retData; switch(resolution) { case 12: retData = new Staff("VoIP-телефон Cisco 7960G с портом LAN"); break; case 10: retData = new Empty("Not found"); break; default: retData = new Noname("Прекрасный выбор по соотношению цена/качеств с 3-мя каналами связи. Выбор просто потрясающий!"); break; } return retData; } } class DataFactory implements iFactory { @Override public aData getByParams(String brand, int resolution, int functions, int weight) { aData retData; if (brand == "Cisco") { retData = new Cisco(resolution, functions, weight); } else if (brand == "Yealink") { retData = new Yealink(resolution, functions, weight); } else { retData = new Empty("Unknown name, item not found"); // заглушка } return retData; } } abstract class aData { protected String _str_name = "Unknown name"; public abstract void showName(); } class Staff extends aData { Staff(String str) { _str_name = str; } @Override public void showName() { System.out.println("Staff class:" + _str_name); } } class Noname extends aData { Noname(String str) { _str_name = str; } @Override public void showName() { System.out.println("Noname class:" + _str_name); } } class Empty extends aData { Empty(String str) { _str_name = str; } @Override public void showName() { System.out.println("Empty class:" + _str_name); } } class Cisco extends aData { Cisco(int resolution, int functions, int weight) { if(resolution == 1) { if(functions==3 && weight==900) { _str_name = "VoIP-телефон Cisco SPA502G - XML приложения, телефонные cправочники для данного набора параметров - просто потрясающе!"; } else if (functions==3 && weight==1050) { _str_name = "VoIP-телефон Cisco 7960G - 24 варианта мелодий звонков, голосовая почта"; } else { _str_name = "VoIP-телефон Cisco 3905 - громкая связь (Hands Free)"; } } else { _str_name = "VoIP-телефон Cisco, лучший в скоей категории веса"; } } @Override public void showName() { System.out.println("Cisco class:" + _str_name); } } class Yealink extends aData { Yealink(int resolution, int functions, int weight) { if(resolution == 1) { if(functions==3 && weight==1000) { _str_name = "SIP телефон YEALINK SIP-T23G"; } else { _str_name = "VoIP-телефон Yealink SIP-T21P E2 - порты: WAN, LAN"; } } else { _str_name = "Yealink"; } } @Override public void showName() { System.out.println("Yealink class:" + _str_name); } }
run
|
edit
|
history
|
help
0
Hi
first activity
default constructor
twelveDays
Linked List creation
1B
Print Longest String
print alphabets using stars
palin
Three In A Row Solver