Replace last comma in string with an “and”. (Objective-C)

Большинство механизмов правила, которые я видел, просматривается как черный квадрат системным кодом. Если бы я должен был создать модель предметной области, я, вероятно, хотел бы, чтобы определенные бизнес-правила были внутренними модели предметной области, например, бизнес-правилам, которые говорят мне, когда объект имеет недопустимые значения. Это позволяет нескольким системам совместно использовать модель предметной области, не копируя бизнес-логику. У меня могло быть каждое системное использование тот же сервис правила проверить мою модель предметной области, но это, кажется, ослабляет мою модель предметной области (как был указан в вопросе). Почему? Поскольку вместо того, чтобы последовательно осуществить мои бизнес-правила через все системы в любом случае, я полагаюсь на системных программистов для определения, когда бизнес-правила должны быть осуществлены (путем вызова сервиса правила). Это не может быть проблемой, если модель предметной области прибывает к Вам полностью заполненный, но может быть проблематичной, если Вы имеете дело с пользовательским интерфейсом или системой, которая изменяет значения в модели предметной области за ее время жизни.

существует другой класс бизнес-правил: принятие решений. Например, страховая компания, возможно, должна классифицировать риск подписания претендента и прибыть в большом почете. Вы могли поместить эти типы бизнес-правил в Вашей модели предметной области, но централизованное решение для сценариев как это обычно желательно и, на самом деле, соответствует вполне хорошо архитектуре для обслуживания широкого круга запросов. Это действительно уклоняется от предмета спора почему механизм правила и не системный код. Место, где механизм правила может быть лучшим выбором, - то, где бизнес-правила, ответственные за решение, изменяются со временем (как некоторые другие ответы указали).

механизмы Правила обычно позволяют Вам изменять правила, не перезапуская Вашу систему или развертывая новый исполняемый код (независимо от того, какие обещания Вы получаете от поставщика, действительно удостоверьтесь, что Вы тестируете свои изменения в непродуктивной среде, потому что, даже если механизм правила безупречен, люди все еще изменяют правила). Если Вы думаете, "Я могу сделать это при помощи базы данных для хранения значений то изменение", Вы правы. Механизм правила не является волшебным полем, которое делает что-то новое. Это предназначается, чтобы быть инструментом, который обеспечивает более высокий уровень абстракции, таким образом, можно сфокусироваться меньше на перестраивании колеса. Многие поставщики берут это шаг вперед, позволяя Вам создать шаблоны так, чтобы бизнес-пользователи могли восполнить пробелы вместо того, чтобы учить язык правила.

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

26
задан Snilleblixten 10 April 2011 в 20:43
поделиться

1 ответ

NSString *str = @"....";  
NSRange lastComma = [str rangeOfString:@"," options:NSBackwardsSearch];

if(lastComma.location != NSNotFound) {
    str = [str stringByReplacingCharactersInRange:lastComma
                                       withString: @" and"];
}
64
ответ дан 28 November 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: