Я разрабатываю приложение для редактирования изображений, и какой подход лучше подходит для дизайна классов из упомянутого ниже? Любой из трех или любой новый?Какой дизайн OO лучше и почему?
Первый
class Image{
string path
rotateLeft(){};
rotateRight(){};
changeBrightness(){};
}
или Второй
class Image{
string path
}
Image image = new Image();
Class Editor{
rotateLeft(Image image){}
rotateRight(Image image){}
changeBrightness(Image image){}
}
или Третий
Interface Operation{
rotateLeft(Image image);
rotateRight(Image image);
changeBrightness(Image image);
}
class Image Implements Operation{
string path;
rotateLeft(this){}
rotateRight(this){}
changeBrightness(this){}
}
пожалуйста, обсудить плюсы и минусы как для подхода.
Ну, вы хотели бы создать класс изображения, содержащий все 4 переменные, первый частный. Затем в вашем классе редактора вы хотите создать объект изображения. –
Это может быть лучше на Programming.SE. Это довольно самоуверенно. Мое мнение: ни; как насчет графа фильтра? Операциями с изображениями являются фильтры (вращение, выравнивание гистограммы и т. Д.). Изображение переходит в фильтр, новое (измененное) изображение выходит из фильтра. Легче добавлять новые фильтры и плагины. И фильтры могут быть скомпонованы в более крупный график (поэтому новые «операции» могут быть выставлены пользователю, которые на самом деле представляют собой комбинацию нескольких фильтров нижнего уровня). – Cornstalks