Вы не можете наследовать от класса и уменьшить видимость унаследованных методов. С другой стороны, код, который вы показываете, не использует наследование. Если вам нужно расширить класс (чтобы вы унаследовали все состояние и поведение от базового класса), но также не хотите показывать все унаследованные методы как публичные, вот способ сделать это:
public final class Derived {
private final Base base = new Base() { // extending base class here
@Override
public void foo() {
Derived.this.foo();
}
@Override
public void bar() {
Derived.this.bar();
}
};
public void foo() {
// Implement foo here
}
private void bar() {
// Implement bar here
}
}
[ 1111] Таким образом, идея заключается в том, чтобы инкапсулировать реализацию класса, расширяющего Base
, в поле private final
нового класса Derived
, который предоставляет только метод foo
, сохраняя при этом метод bar
private
, Этот анонимный внутренний класс просто делегирует методы класса Derived
. В качестве дополнительной меры безопасности мы также делаем класс Derived
final
.
Если вы хотите использовать WiX , вам необходимо хотя бы общее представление о том, как работает установщик Windows . Лучшим справочным материалом является «Полное руководство по установщику Windows» , в котором рассматриваются все основные принципы с примерами с использованием Visual Studio и Orca.
WiX очень легко освоить , если вы понимаете установщик Windows .
Правильно написанный пакет установщика Windows будет более стабильным и устойчивым, чем все, что вы можете себе представить. Потребуется месяц или около того, чтобы обдумать это, и вы поправитесь и узнаете больше об этом со временем.
С другой стороны, NSIS требуется всего один день для изучения - это просто простой язык сценариев.
@wcoenen - я бы согласился, что вы определенно узнаете больше, читая различные блоги тех, кто работает в команде WiX, но я лично считаю, что эта конкретная книга дает действительно прочную основу, которая облегчает понимание концепций, которые они говорить о.
@Sandeep - вам нужен пакет MSI для корпоративного программного обеспечения. Если вы не собираетесь продавать свой продукт клиентам, которым необходимо автоматическое развертывание в закрытой среде, то NSIS вам подойдет просто:)
@romkyns InnoSetup, на мой взгляд, довольно ограничен, вы можете сделать то же самое с пакетным файлом и самораспаковывающимся EXE - все зависит от вашего целевого рынка, корпоративные / корпоративные клиенты требуют MSI - домашним пользователям все равно как это работает и с радостью дважды щелкните файл SETUP.BAT:)
Я хотел бы предложить другой установщик, который представляет собой InnoSetup в сочетании с ISTools
Innosetup имеет очень хороший язык сценариев и имеет мастера для создания Вам легко сделать установочный пакет, а ISTools имеет графический интерфейс для большинства опций Innosetup
. Я смог установить Mysql, его службу и создать с его помощью таблицы и другие вещи, и его намного легче изучить, чем другим.